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服務(wù)器中的nginx.conf配置文件
這篇文章主要介紹了詳解Nginx服務(wù)器中的nginx.conf配置文件,包括對(duì)HTTP服務(wù)的基本配置方法,需要的朋友可以參考下2015-08-08
Nginx整合Tomcat實(shí)現(xiàn)跨域功能的完整指南
在現(xiàn)代Web開(kāi)發(fā)中,前后端分離架構(gòu)越來(lái)越普遍,這種情況下,跨域請(qǐng)求成為了一個(gè)常見(jiàn)的問(wèn)題,本文將介紹如何通過(guò)Nginx和Tomcat的整合來(lái)解決跨域問(wèn)題,并實(shí)現(xiàn)高效的服務(wù)部署2025-09-09
使用Docker實(shí)現(xiàn)Nginx反向代理
本文主要介紹了使用Docker實(shí)現(xiàn)Nginx反向代理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Nginx listen 監(jiān)聽(tīng)端口的實(shí)現(xiàn)配置
本文將介紹Nginx的listen指令及其在配置文件中的應(yīng)用,通過(guò)了解listen指令,我們可以知道Nginx如何監(jiān)聽(tīng)端口,并配置相應(yīng)的服務(wù)器塊來(lái)處理進(jìn)入的請(qǐng)求2023-12-12
Nginx與后臺(tái)應(yīng)用端口沖突的解決方案
在部署Web應(yīng)用時(shí),Nginx和后臺(tái)應(yīng)用(如Node.js、Python Flask、Java Spring Boot等)常常需要同時(shí)運(yùn)行在一臺(tái)服務(wù)器上,然而,當(dāng)它們需要監(jiān)聽(tīng)同一個(gè)端口(如8000)時(shí),就會(huì)出現(xiàn)端口沖突的問(wèn)題,本文將詳細(xì)介紹幾種解決Nginx與后臺(tái)應(yīng)用端口沖突的方法2025-02-02
權(quán)限問(wèn)題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法
這篇文章主要介紹了權(quán)限問(wèn)題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法,本文中導(dǎo)致 403 Forbidden錯(cuò)誤的原因是配置文件中沒(méi)有指明一個(gè)用戶,需要的朋友可以參考下2014-08-08
詳解Nginx的核心配置模塊中對(duì)于請(qǐng)求體的接受流程
這篇文章主要介紹了詳解Nginx的核心配置模塊中對(duì)于請(qǐng)求體的接受流程,包括其丟棄請(qǐng)求的過(guò)程,需要的朋友可以參考下2015-12-12

