Nginx配置 Location 優先順序

2021-09-16 14:08:06 字數 2628 閱讀 5899

以下為個人小結測試,如文中有錯誤,歡迎指出,謝謝!

1.所有規則分配到各自類,優先順序如下,找到第乙個符合的類別即停止2.在符合的類別中搜尋所有符合的規則,按照下述示例處理衝突

優先順序最高,首選,無論位置

精確匹配只有完全符合才會匹配

# 訪問 都會匹配

# 訪問 不會被匹配

server

}

配置檔案

# 測試訪問位址 

server

# 大小寫敏感的正規表示式,能匹配,並且在前面

location ~ /equal_.*

# 大小寫不敏感的正規表示式,能匹配,並且在前面

location ~* /equal_.*

# ^~ 字首,能匹配,在前面

location ^~ /equal_.*

# 假如還有這個,nginx會報錯,無法啟動

# nginx: [emerg] duplicate location "/equal_prefix"

# 因此忽略 一致匹配的情況下 前後優先順序的問題

# location ^~ /equal_prefix

# = 精確匹配

location = /equal_prefix

}

結果

除 = 號字首外,優先順序第二,並且最長優先,無論位置

配置檔案

# 測試訪問位址 

server

# 無字首,部分匹配,在前面

location /caret-

# 大小寫不敏感的正規表示式,並且在前面

location ~* /caret-regex

# 大小寫敏感的正規表示式,並且在前面

location ~ /caret-regex

# ^~ 字首的, 較短,在前面

location ^~ /caret

# ^~ 字首的,較長,在後面

location ^~ /caret-regex

}

結果

配置檔案

1.同樣符合的正規表示式情況下,不區分長短,不區分精確字元個數,位置前面優先

# 測試訪問位址 

server

# 正規表示式, 精確字元個數較少

location ~ /reg.*

# 正規表示式, 精確字元個數較多

location ~ /regex

}

結果

2. ~與~*優先順序一致 ,位置前面優先

# 測試訪問位址 

server

location ~* /regex

}

結果1

# 測試訪問位址 

server

location ~ /regex

}

結果2

3.優先順序比無字首要高,即使位置在後面

# 測試訪問位址 

server

location ~ /regex

}

結果

優先順序最低, 同樣無字首情況下,精確度最長的優先

# 測試訪問位址 

server

# 精確度高,但在後面

location /non-prefix

}

結果

Nginx配置基礎 location

location表示式型別 表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配。使用字首匹配。如果匹配成功,則不再匹配其他location。進行普通字元精確匹配。也就是完全匹配。常規字串匹配。按字首匹配。它定義乙個命名的 location,使用在內部定向時,例如 ...

nginx配置location總結

上 多的不說了,配了很多,終於起效了。對nginx 來說,實現的方法很簡單,只要在location段中,使用 expires 就可以了 格式expires 30s 表示把資料快取30秒 expires 30m 表示把資料快取30分 expires 10h 表示把資料快取10小時 expires 1d...

nginx配置命令 location配置

波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄。進行普通字元精確匹配。定義乙個命名的 location,使用在內部定向時,例如 error page,try files。按配置檔案順序搜尋下...