NGINX location 在配置中的優先順序
location表示式型別
- ~ 表示執行一個正則匹配,區分大小寫
- ~* 表示執行一個正則匹配,不區分大小寫
- ^~ 表示普通字元匹配。使用字首匹配。如果匹配成功,則不再匹配其他location。
- = 進行普通字元精確匹配。也就是完全匹配。
- @ 它定義一個命名的 location,使用在內部定向時,例如 error_page, try_files
location優先順序說明
在nginx的location和配置中location的順序沒有太大關係。正location表示式的型別有關。相同型別的表示式,字串長的會優先匹配。
以下是按優先順序排列說明:
- 等號型別(=)的優先順序最高。一旦匹配成功,則不再查詢其他匹配項。
- ^~型別表示式。一旦匹配成功,則不再查詢其他匹配項。
- 正規表示式型別(~ ~*)的優先順序次之。如果有多個location的正則能匹配的話,則使用正規表示式最長的那個。
- 常規字串匹配型別。按字首匹配。
location優先順序示例
配置項如下:
location = / {
# 僅僅匹配請求 /
[ configuration A ]
}
location / {
# 匹配所有以 / 開頭的請求。
# 但是如果有更長的同型別的表示式,則選擇更長的表示式。
# 如果有正規表示式可以匹配,則優先匹配正規表示式。
[ configuration B ]
}
location /documents/ {
# 匹配所有以 /documents/ 開頭的請求。
# 但是如果有更長的同型別的表示式,則選擇更長的表示式。
# 如果有正規表示式可以匹配,則優先匹配正規表示式。
[ configuration C ]
}
location ^~ /images/ {
# 匹配所有以 /images/ 開頭的表示式,如果匹配成功,則停止匹配查詢。
# 所以,即便有符合的正規表示式location,也不會被使用
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配所有以 gif jpg jpeg結尾的請求。
# 但是 以 /images/開頭的請求,將使用 Configuration D
[ configuration E ]
}
請求匹配示例
/ -> configuration A
/index.html -> configuration B
/documents/document.html -> configuration C
/images/1.gif -> configuration D
/documents/1.jpg -> configuration E
注意,以上的匹配和在配置檔案中定義的順序無關。
相關文章
- nginx的location匹配順序、優先順序,location對映衝突排查Nginx
- Nginx的location規則:優先順序和路徑替換Nginx
- 中斷優先順序
- SpringBoot配置檔案優先順序載入順序Spring Boot
- Yarn任務優先順序配置Yarn
- 設計中的優先順序(下)
- 設計中的優先順序(上)
- CSS優先順序CSS
- 運算子的優先順序
- python運算子及優先順序順序Python
- spring不同配置方式的區別與優先順序Spring
- Yacc使用優先順序
- Android程式優先順序Android
- NTP時間伺服器優先順序配置伺服器
- 美團二面:SpringBoot讀取配置優先順序順序是什麼?Spring Boot
- Web 效能優化:Preload與Prefetch的使用及在 Chrome 中的優先順序Web優化Chrome
- [譯]HTTP/2的優先順序HTTP
- 深入探究.Net Core Configuration讀取配置的優先順序
- 介紹python中運算子優先順序Python
- SQL 優先順序join>whereSQL
- java運算子優先順序Java
- ORACLE中sql語句----運算子的優先順序OracleSQL
- Spring Boot、Nacos配置檔案properties、yml、yaml的優先順序Spring BootYAML
- CSS 選擇器的優先順序CSS
- SAP UI configuration determination的優先順序UI
- 測試用例的優先順序
- Nginx Location 配置Nginx
- C++運算子優先順序C++
- ansible 變數優先順序示例變數
- java setPriority()設定優先順序Java
- 封裝優先順序佇列封裝佇列
- css 選擇器優先順序CSS
- linux中設定程式排程的優先順序別Linux
- nginx的location優化Nginx優化
- 【pytest】fixture 與 setup, teardown 的優先順序
- 【分享】如何評估 bug 的優先順序
- 怎樣做好客戶的優先順序?
- Java之執行緒的優先順序Java執行緒
- lodash原始碼分析之baseFindIndex中的運算子優先順序原始碼Index