[英]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.