Nginx中proxy_pass指令斜杠的作用及說明
前言
在使用Nginx的proxy_pass指令時,添加或不添加斜杠(/)會影響代理請求的行為
下面我就詳細說明下,防止大家在配置的時候出現(xiàn)問題
沒有斜杠
當(dāng)proxy_pass后面沒有斜杠時,代理服務(wù)器將會保留原始URI的路徑,并將其追加到proxy_pass指定的后端服務(wù)器地址中。
簡單來說,當(dāng)proxy_pass代理地址端口后沒有斜杠(/)和目錄,轉(zhuǎn)發(fā)后的地址就是代理服務(wù)器地址加請求的URL路徑
舉個例子
加入nginx服務(wù)器的地址是:192.168.30.120
配置如下
location /api { proxy_pass http://192.168.30.121:8083; }
proxy_pass的代理地址只有ip和端口,后面沒有斜杠和目錄
這時候我們請求http://192.168.30.120:80/api/a,那么會轉(zhuǎn)發(fā)到http://192.168.30.121:8083/api/a
相當(dāng)于把路徑直接拼接到我們的代理服務(wù)器地址
有斜杠
當(dāng)proxy_pass后面添加了斜杠(/)時,那么會把匹配 location 的內(nèi)容從請求路徑中剔除,然后將剩下的路徑拼接到proxy_pass的地址
舉個例子
加入nginx服務(wù)器的地址是:192.168.30.120
location /api { proxy_pass http://192.168.30.121:8083/; }
可以看到,proxy_pass的代理地址后有斜杠(/),這時候我們請求http://192.168.30.120:80/api/a,那么會轉(zhuǎn)發(fā)到http://192.168.30.121:8083/a,路徑中的/api會被剔除
還有一種情況, proxy_pass的結(jié)尾沒有斜杠,但是ip端口后有斜杠,那么location 的路徑會被剔除嗎?
答案是會的
舉個例子
配置如下
location /api { proxy_pass http://192.168.30.121:8083/test; }
我們請求http://192.168.30.120:80/api/a,會被轉(zhuǎn)發(fā)到http://192.168.30.121:8083/test/a,/api依舊是被剔除的
注意:
nginx把location 地址剔除是包括/斜杠的,所以如果我們的配置如下
location /api/ { proxy_pass http://192.168.30.121:8083/test; }
那么/api/就會被剔除,注意這里因為我們在/api后面也加上了/,那么會把路徑中api的前后/斜杠也剔除
比如我們請求http://192.168.30.120:80/api/a,那么會被轉(zhuǎn)發(fā)到http://192.168.30.121:8083/testa
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx的限流和網(wǎng)關(guān)gatway限流詳解
這篇文章主要介紹了nginx的限流和網(wǎng)關(guān)gatway限流,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Nginx+Tomcat搭建高性能負載均衡集群的實現(xiàn)方法
這篇文章主要介紹了Nginx+Tomcat搭建高性能負載均衡集群的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03nginx的keepalive相關(guān)參數(shù)使用源碼解讀
這篇文章主要為大家介紹了nginx的keepalive相關(guān)參數(shù)使用源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12nginx與apache限制ip并發(fā)訪問 限制ip連接的設(shè)置方法
nginx限制ip并發(fā)數(shù),也是說限制同一個ip同時連接服務(wù)器的數(shù)量,要使apache服務(wù)器做對同一IP地址的連接限制,需要mod_limitipconn來實現(xiàn)。一般需要手動編譯。不過模塊作者也提供了一些編譯好的模塊,根據(jù)自己的apache版本可以直接使用2012-11-11OpenResty中實現(xiàn)按QPS、時間范圍、來源IP進行限流的方法
OpenResty是一個基于Nginx與Lua的高性能Web平臺,它通過LuaJIT在Nginx中運行高效的Lua腳本和模塊,可以用來處理復(fù)雜的網(wǎng)絡(luò)請求,并且支持各種流量控制和限制的功能,這篇文章主要介紹了OpenResty中實現(xiàn)按QPS、時間范圍、來源IP進行限流,需要的朋友可以參考下2024-02-02