nginx中return和rewrite指令同時(shí)存在先執(zhí)行順序哪個(gè)
前文
如果return指令
跟rewrite指令
同時(shí)存在先執(zhí)行哪個(gè)呢?
場(chǎng)景示例
模擬數(shù)據(jù)
server { location /images { rewrite /images/(.*)$ /pic/$1 last; return 200 "return 200 in /images"; } location /pic { rewrite /pic/(.*) /photos/$1; return 200 "return 200 in /pic"; } location /photos { return 200 "return 200 in /photos"; } }
分別在/images
、/pic
、/photos
的location段增加return 返回200狀態(tài)碼并輸出字符串
流程
- 訪問(wèn)
xxx.com/images/index.html
,會(huì)進(jìn)入/images的location段中
, - 在
/images
中,進(jìn)行rewrite指令
,將images/index.html重寫(xiě)到/pic/
的index.html,并且有last 值
。 - 遇到
last值
,會(huì)重新觸發(fā)請(qǐng)求。在server段
找/pic
的location段。 - 匹配到location的
/pic
后 ,又重寫(xiě),將/pic
的index.html重定向到/photos
目錄下的index.html。(注意/pic段沒(méi)有加last值,意味著流程順序執(zhí)行!) - 沒(méi)有加flag標(biāo)簽。所以
/pic段
中依然執(zhí)行下面的命令,會(huì)走retrun 200 "return 200 in /pic"
之后就中斷。
場(chǎng)景2
如果在/pic段中
增加flag的break
,會(huì)執(zhí)行什么?
當(dāng)遇到break
,會(huì)重寫(xiě)找/photos段
,不會(huì)執(zhí)行return 200 in /pic
,
注意事項(xiàng)
如果當(dāng)你直接訪問(wèn)xxx.com/photos/index.html
, 但是又有return指令
, 會(huì)優(yōu)先執(zhí)行return指令 , 并不會(huì)返回photos/index.html
的頁(yè)面,直接返回return結(jié)果給你。
如果沒(méi)有return指令
才會(huì)找目錄對(duì)應(yīng)下的有沒(méi)有index.html
文件。
總結(jié)
到此這篇關(guān)于nginx中return和rewrite指令同時(shí)存在先執(zhí)行順序哪個(gè)的文章就介紹到這了,更多相關(guān)nginx中return和rewrite指令執(zhí)行順序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Nginx中阻止來(lái)自特定的IP地址訪問(wèn)的操作指南
在網(wǎng)絡(luò)安全方面,有時(shí)你可能需要限制特定國(guó)家或地區(qū)的訪問(wèn)權(quán)限,本文將介紹如何使用?Nginx?配置文件來(lái)阻止來(lái)自特定國(guó)家或地區(qū)的?IP?地址訪問(wèn)你的網(wǎng)站,需要的朋友可以參考下2024-07-07Nginx訪問(wèn)日志access_log配置及信息詳解(推薦)
當(dāng)你設(shè)置日志級(jí)別成debug,如果你在調(diào)試一個(gè)在線的高流量網(wǎng)站的話,你的錯(cuò)誤日志可能會(huì)記錄每個(gè)請(qǐng)求的很多消息,這樣會(huì)變得毫無(wú)意義,下面小編給大家介紹Nginx訪問(wèn)日志access_log配置及信息詳解,感興趣的朋友跟隨小編一起看看吧2024-04-04Nginx?504?Gateway?Time-out的兩種最新解決方案
大家在訪問(wèn)網(wǎng)站的時(shí)候通常會(huì)遇到502錯(cuò)誤、404錯(cuò)誤等,很少會(huì)遇到504錯(cuò)誤,但是在我們?nèi)ピL問(wèn)大流量或者內(nèi)容數(shù)據(jù)量較多的網(wǎng)站時(shí),打開(kāi)網(wǎng)頁(yè)偶爾就會(huì)出現(xiàn)504 gateway time-out,這篇文章主要給大家介紹了關(guān)于Nginx?504?Gateway?Time-out的兩種解決方案,需要的朋友可以參考下2022-08-08