Nginx location配置規則

2021-07-16 03:10:42 字數 1007 閱讀 3800

location配置分兩種:

(1)普通location配置

(2)正規表示式location配置

例子:

#普通location例子1

location /

#普通location例子2

location /static/

#普通location例子3

location ^~ /video

#普通location例子4

location = /

#正規表示式location

如上看到,正規表示式location就是使用了正規表示式語法的location。

普通location就是沒有使用正規表示式的 location,其匹配規則如下:

a. 普通location沒有順序關係,配置在前或在後都不會影響匹配結果,如果有多條普通location,則以最大字首作為匹配結果e.g.,

這個url會匹配上面的例子2

b. 正規表示式location有順序關係,如果有多條符合條件的正規表示式的location,則只匹配第乙個符合條件的location

c. 先匹配普通location,再匹配正規表示式location

所以,一條url的location定位,最多會有兩次location匹配:先是找到最大字首的location,接著找最靠前符合條件的正規表示式location,如果沒找到符合條件的正規表示式location,則直接採用普通location的規則。為什麼說最多會有兩次location匹配,因為在匹配普通location時可以指定,匹配完了普通location,接下來就不要再匹配正規表示式location了,例子3和例子4就是特殊的普通location配置,通過在 「=」 、「~」指定,如果當前普通location匹配成功,則接下來採用該location,而不必繼續匹配正規表示式location。「=」、「~」兩者的區別在於,前者是嚴格匹配,也就是url路徑中必須每個字元都符合 = 號後的路徑,而後者並不是嚴格匹配。

Nginx Location配置總結

語法規則 location uri 開頭表示精確匹配 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為 static 20 aa,可以被規則 static aa匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...

Nginx Location配置總結

語法規則 location uri 開頭表示精確匹配 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為 static 20 aa,可以被規則 static aa匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...

Nginx Location配置總結

語法規則 location uri 開頭表示精確匹配 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為 static 20 aa,可以被規則 static aa匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...