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匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...