nginx的port_in_redirect配置

本文主要講解下port_in_redirect的實際用途。html

場景

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

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

另一個nginx的配置以下web

server {
        listen       8080  default_server;
        location ~* /public/(share|webview) {
            root   html ;
            proxy_buffering off;
            index  index.html index.htm;
        }
}
html目錄裏頭有個public目錄,public目錄裏頭有share以及webview目錄,存放各個子模塊的靜態資源。

問題

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

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

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

server {
        listen       8080  default_server;
        location ~* /public/(share|webview) {
            root   html ;
            proxy_buffering off;
            port_in_redirect off;
            index  index.html index.htm;
        }
}
經過指定port_in_redirect off;告知nginx在redirect的時候不要帶上port,若是沒有配置,默認該值爲true

doc

相關文章
相關標籤/搜索