[英]Can listen on multiple ports and proxy_pass them to the same host in NGINX?
我有以下配置,它有效但非常重复:
server {
listen 8080;
location / {
proxy_pass http://target_service:8080;
proxy_set_header Host target_service;
proxy_set_header Connection "Close";
proxy_http_version 1.1;
}
}
server {
listen 8081;
location / {
proxy_pass http://target_service:8081;
proxy_set_header Host target_service;
proxy_set_header Connection "Close";
proxy_http_version 1.1;
}
}
有没有一种好方法可以将它们组合到一个server
,该server
侦听两个端口,并为每个请求转发正确的端口?
你应该能够做到这一点。 组合您的服务器块:
server {
listen 8080;
listen 8081;
}
然后使用$server_port
变量创建所需的 url。 您可能需要指定一个解析器,因为 proxy_pass 不能很好地处理动态变量,但这可能会解决这个问题。
location / {
set $target_url http://target_service:$server_port;
proxy_pass $target_url;
proxy_set_header Host target_service;
proxy_set_header Connection "Close";
proxy_http_version 1.1;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.