簡體   English   中英

nginx:如何創建相對(重寫)相對的? (即不要弄亂端口號!)

[英]nginx: How do I make a rewrite (redirect) relative? (i.e. don't mess with the port number!)

我目前正在使用nginx 1.9.11。 我有一種情況,我的應用程序是通過負載平衡器從動態端口提供服務的,但是應用程序本身的端口已設置。 看起來像這樣

Port [4000-4999] on load balancer -> instances of nginx all on port 80

我需要將/myapp重定向到/myapp/而不會丟失端口信息。 但是我不知道應用程序級別的端口,因為這些應用程序是動態創建和銷毀的!

這是我的重寫規則的語法:

rewrite ^/myapp /myapp/

我得到的是:

http://example.com:4000/myapp  -> http://example.com/myapp   # no port 4000!

我無法對端口進行硬編碼...因為存在千種可能性,並且它們一直在變化! 我需要留在同一個端口上,但是我不知道我們進入哪個端口。 如何讓Nginx獨自離開端口?


我已經嘗試過的...

httpserverlocation部分中:

port_in_redirect off;

server部分:

proxy_set_header Host $host:$server_port;

同樣在server部分:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;

經典。 經過兩天的努力,我寫了一個不錯的Stack Overflow帖子,然后我立即想到了一些事情,我嘗試了一下,並且它起作用了。

解決問題的方法如下:我將重寫規則更改為如下所示:

rewrite ^/myapp $http_host/myapp/

而且有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM