五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

靈活應(yīng)用Nginx Rewrite:實戰(zhàn)經(jīng)驗與實用方法

2023-04-18 22:45 作者:小毛驢的爛筆頭  | 我要投稿

Nginx Rewrite順序優(yōu)先級

?
location?=)?>?(location?完整路徑)?>?(location?^~?路徑)?>?(location?~,~*?正則順序)?>?(location?部分起始路徑)?>?(/)

具體而言,當 Nginx 匹配請求 URL 時,先按照完全匹配(location =)進行匹配,然后是完整路徑匹配(location 完整路徑),接著是路徑前綴匹配(location ^~ 路徑),再然后是正則表達式匹配(location?,* 正則順序),最后是部分起始路徑匹配(location 部分起始路徑),如果都沒有匹配成功,則使用 / 作為默認匹配。

Nginx Rewrite Flag

Nginx Rewrite 指令中的 flag 用于控制重寫操作的行為,常見的 flag 有以下幾種:

last:相當于 Apache 中的 [L] 標記,表示完成重寫操作,并跳過后續(xù)的 Rewrite 指令,直接選擇下一個匹配的 location 進行處理。

break:終止當前匹配,不再執(zhí)行后續(xù)的 Rewrite 指令,并使用當前重寫后的 URL 進行請求處理。

redirect:返回 302 臨時重定向,地址欄會顯示跳轉(zhuǎn)后的 URL,對搜索引擎爬蟲來說不會更新 URL(因為是臨時重定向)。

permanent:返回 301 永久重定向,地址欄會顯示跳轉(zhuǎn)后的 URL,對搜索引擎爬蟲來說會更新 URL(因為是永久重定向)。

last 和 break 在使用上區(qū)別:

last 和 break 當出現(xiàn)在 location 塊之外時:

兩者的作用是一致的沒有任何差異,?他們會跳過所有的在他們之后的?rewrite?模塊中的指令,?去選擇自己匹配的location.
不寫lastbreak,?會優(yōu)先執(zhí)行rewrite部分,?然后才會去匹配?location?塊.?

last 和 break 當出現(xiàn)在 location 塊內(nèi)部時

?break:?url重寫后,?直接使用當前資源,?終止當前locationrewrite檢測,?而且不再進行location匹配,?完成本次請求,?地址欄url不變.?
?last:??url重寫后,?馬上發(fā)起一個新的請求,?再次進入server塊,?重試location匹配,?超過10次匹配不到報500錯誤,?地址欄url不變.?
?不寫lastbreak,?那么流程就是依次執(zhí)行這些rewrite.

例子

如下 Nginx配置,回答下面3個問題

1 當 1 這條rewrite 規(guī)則生效后, 2,3,4規(guī)則將會如何處理。

2 當 5 這個 rewrite 指令處理完成之后,將會如何處理請求。

3 第二個location 中的 rewrite(6)指令處理完成之后,將會如何處理請求。

rewrite?xxx1?yyy?last;?1
rewrite?xxx2?yyy?last;?2
rewrite?xxx3?yyy?last;?3
rewrite?xxx4?yyy?last;?4
?
location?~??url1
{
????rewrite?url1?url2?last;?5?
}
?
location?~??url2
{
????rewrite?url3?url4?break;??6
????fastcgi_pass?127.0.0.1:9000
}

當 1 這條rewrite 規(guī)則生效后, 它后面的2,3,4將被跳過不做判斷, 而去直接選擇 后面的location.

當 5 這個 rewrite 指令處理完成之后, 會跳出location, 再重新判斷rewrite 1-4 的規(guī)則.

第二個location 中的 rewrite(6)指令處理完成之后, 不會跳出location, 更不會重新判斷rewrite 1 ~ 4 的規(guī)則. 而只能將信息傳遞給后面的 fastcgi_pass 或者 proxy_pass 等指令。

Nginx請求匹配到下面的localtion會返回404嗎

location?/eoc?{
????rewrite?^?$request_uri;
????rewrite?^/eoc/(.*)$?/$1?break;
????rewrite?^/eoc?break;?
????return?404;
????proxy_pass?http://127.0.0.1:18002$uri;?
????proxy_http_version?1.1;
????add_header?Cache-Control?'public,?max-age=0';
}

根據(jù) Nginx 的請求處理過程,當執(zhí)行了 return 指令時,后續(xù)的rewrite和return指令不會執(zhí)行,而是將其扔給了 fastcgi_pass 或者是 proxy_pass 指令去處理,而不會執(zhí)行"return 404;"。因此,配置中的"return 404;"不會被執(zhí)行。


靈活應(yīng)用Nginx Rewrite:實戰(zhàn)經(jīng)驗與實用方法的評論 (共 條)

分享到微博請遵守國家法律
景宁| 昌吉市| 利津县| 乡宁县| 潞西市| 治县。| 堆龙德庆县| 交口县| 阿坝县| 板桥市| 京山县| 桦甸市| 任丘市| 淮安市| 法库县| 深州市| 明水县| 绥德县| 肃南| 青海省| 藁城市| 台北县| 西乌珠穆沁旗| 南平市| 咸宁市| 民丰县| 醴陵市| 鄂州市| 汝阳县| 金溪县| 察哈| 龙泉市| 阳西县| 芦溪县| 容城县| 嘉善县| 屏东县| 铜梁县| 镇安县| 朝阳县| 康保县|