服務器
前言
nginx 配置中的server 塊中的location 用來匹配請求 uri,以便對不通的 uri 進行不通的處理。
location 類型 和 成功匹配的條件
location = expression {} 精準匹配,只有 uri 和 expression 完全相同,才算匹配成功;
location expression {} 普通匹配,只要 uri 前部分的字符與 expression 相同就算匹配成功;
location ^~ expression {} 普通匹配,只要 uri 前部分字符與 expression 相同就算匹配成功;
location ~ regex {} 正則匹配(區分大小寫);
location ~* regex {} 正則匹配(不區分大小寫);
總結可分為三大類:精準匹配、普通匹配和正則匹配。
匹配邏輯與優先級
對于一個進入 nginx 的請求來講,其 uri 可能符合多個location 的匹配條件,但這條請求最終只會被一個 location 邏輯所處理(重定向不算),那么,匹配時肯定有優先級之分。nginx 的匹配邏輯是這樣的:
1. 執行精準匹配
若請求 uri 與location = 相匹配(符合精準匹配條件),則執行該location 的內容,不再進行其他匹配,否則見下一條。
2. 執行普通匹配
接下來 nginx 會將 uri 與所有普通匹配的location 進行比較(無論是^~ 類型還是無符號類型),然后找出匹配度最高的location ,若該location 為^~ 類型,則停止匹配,執行該 location 內容;若匹配度最高的location 為無符號類型,則保留這個無符號location ,繼續進行下面的正則匹配;若 uri 不符合任何普通匹配location 的條件,則直接進入下一步。
3. 執行正則匹配
正則的匹配與location 的順序相關,nginx 會從上至下進行匹配,若匹配到一個location ,則執行該location 邏輯,忽略后面所有的正則location ,終止匹配;若一個正則都沒匹配上,則執行之前保留的那個無符號location ,若之前沒有保留,則直接返回 404。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對西部數碼的支持。
九個步驟教你創建中小企業的網絡ftp服務器FileZilla Server詳細配置教程阿里云服務器臨時升級配置網站設計要注意什么 如何選擇網站設計工作室備案已經提交審核-備案平臺流量計算ipv4和ipv6轉換天翼云主機網站服務器