nginx location proxy_pass 后面的url 加與不加/的區別

在nginx中配置proxy_pass時,當在后面的url加上了/,相當于是絕對根路徑,則nginx不會把location中匹配的路徑部分代理走;如果沒有/,則會把匹配的路徑部分也給代理走。?


?????首先是location進行的是模糊匹配

????1)沒有“/”時,location?/abc/def可以匹配/abc/defghi請求,也可以匹配/abc/def/ghi等

????2)而有“/”時,location?/abc/def/不能匹配/abc/defghi請求,只能匹配/abc/def/anything這樣的請求

下面四種情況分別用http://192.168.1.4/proxy/test.html 進行訪問。

第一種:

location ?/proxy/ {

proxy_pass http://127.0.0.1:81/;

}

結論:會被代理到http://127.0.0.1:81/test.html?這個url


第二種(相對于第一種,最后少一個 /)

location ?/proxy/ {

proxy_pass http://127.0.0.1:81;

}

結論:會被代理到http://127.0.0.1:81/proxy/test.html?這個url


第三種:

location ?/proxy/ {

proxy_pass http://127.0.0.1:81/ftlynx/;

}

結論:會被代理到http://127.0.0.1:81/ftlynx/test.html?這個url。


第四種(相對于第三種,最后少一個 / ):

location ?/proxy/ {

proxy_pass http://127.0.0.1:81/ftlynx;

}

結論:會被代理到http://127.0.0.1:81/ftlynxtest.html?這個url

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容