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