主頁 > 知識庫 > Nginx配置之location的匹配優(yōu)先級淺析

Nginx配置之location的匹配優(yōu)先級淺析

熱門標(biāo)簽:外呼系統(tǒng)打哪顯哪 江西外呼系統(tǒng) 高德地圖標(biāo)注論壇 AI電銷機器人 源碼 蘭州ai電銷機器人招商 新邵電銷機器人企業(yè) 湖北ai智能電銷機器人 北海市地圖標(biāo)注app 新科美甲店地圖標(biāo)注

前言

Nginx 配置中的 server 塊中的 location 用來匹配請求 URI,以便對不通的 URI 進(jìn)行不通的處理。

location 類型 和 成功匹配的條件

  • location = expression {} 精準(zhǔn)匹配,只有 URI 和 expression 完全相同,才算匹配成功;
  • location expression {} 普通匹配,只要 URI 前部分的字符與 expression 相同就算匹配成功;
  • location ^~ expression {} 普通匹配,只要 URI 前部分字符與 expression 相同就算匹配成功;
  • location ~ regex {} 正則匹配(區(qū)分大小寫);
  • location ~* regex {} 正則匹配(不區(qū)分大小寫);

總結(jié)可分為三大類:精準(zhǔn)匹配、普通匹配和正則匹配。

匹配邏輯與優(yōu)先級

對于一個進(jìn)入 Nginx 的請求來講,其 URI 可能符合多個 location 的匹配條件,但這條請求最終只會被一個 location 邏輯所處理(重定向不算),那么,匹配時肯定有優(yōu)先級之分。Nginx 的匹配邏輯是這樣的:

1. 執(zhí)行精準(zhǔn)匹配

若請求 URI 與 location = 相匹配(符合精準(zhǔn)匹配條件),則執(zhí)行該 location 的內(nèi)容,不再進(jìn)行其他匹配,否則見下一條。

2. 執(zhí)行普通匹配

接下來 Nginx 會將 URI 與所有普通匹配的 location 進(jìn)行比較(無論是 ^~ 類型還是無符號類型),然后找出匹配度最高的 location ,若該 location 為 ^~ 類型,則停止匹配,執(zhí)行該 location 內(nèi)容;若匹配度最高的 location 為無符號類型,則保留這個無符號 location ,繼續(xù)進(jìn)行下面的正則匹配;若 URI 不符合任何普通匹配 location 的條件,則直接進(jìn)入下一步。

3. 執(zhí)行正則匹配

正則的匹配與 location 的順序相關(guān),Nginx 會從上至下進(jìn)行匹配,若匹配到一個 location ,則執(zhí)行該 location 邏輯,忽略后面所有的正則 location ,終止匹配;若一個正則都沒匹配上,則執(zhí)行之前保留的那個無符號 location ,若之前沒有保留,則直接返回 404。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

標(biāo)簽:南陽 海南 黔東 自貢 黃石 阿克蘇 大理 池州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx配置之location的匹配優(yōu)先級淺析》,本文關(guān)鍵詞  Nginx,配,置之,location,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx配置之location的匹配優(yōu)先級淺析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Nginx配置之location的匹配優(yōu)先級淺析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章