02.28 nginx的port

有一個80端口的nginx,要轉發一個路徑到另一個8080端口的nginx,配置如下

<code>server {        listen       80  default_server;        server_name demoapp.com.cn;        location /public/ {            proxy_pass http://192.168.99.100:8080/public/ ;        }}/<code>

另外一個nginx的配置如下

<code>server {        listen       8080  default_server;        location ~* /public/(share|webview) {            root   html ;            proxy_buffering off;            index  index.html index.htm;        }}/<code>

html目錄裡頭有個public目錄,public目錄裡頭有share以及webview目錄,存放各個子模塊的靜態資源。

問題

這樣配置了之後,通過demoapp.com.cn/public/share訪問的時候,會跳轉到demoapp.com.cn:8080/public/share

假設這兩個nginx監聽同一個ip,如果不是同一個ip,估計要配置server_name以及開啟server_name_in_redirect

這個時候,port_in_redirect就派上用場了。

<code>server {        listen       8080  default_server;        location ~* /public/(share|webview) {            root   html ;            proxy_buffering off;            port_in_redirect off;            index  index.html index.htm;        }}/<code>

通過指定port_in_redirect off;告知nginx在redirect的時候不要帶上port,如果沒有配置,默認該值為true

參考文章:

http://nginx.org/en/docs/http/ngx_http_core_module.html#port_in_redirect

https://blog.csdn.net/weiyuefei/article/details/38556593

查看更多


分享到:


相關文章: