一. nginx配置文件結構介紹
二. location語法規則:
用法示例: location [=|~|~*|^~] /uri/ { … } # 講解如下:
1. = 開頭表示精確匹配
2. ^~ 開頭表示uri以某個常規字符串開頭,理解為匹配 url路徑即可。
nginx不對url做編碼,因此請求為/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。
3. ~ 開頭表示區分大小寫的正則匹配
4. ~* 開頭表示不區分大小寫的正則匹配
5. !~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配 的正則
6. / 通用匹配,任何請求都會匹配到。
注意: 多個location配置的情況下匹配順序為首先匹配 =,其次匹配^~,其次是按文件中順序的正則匹配,最后交給 / 通用匹配.
當有匹配成功時候,停止匹配,按當前匹配規則處理請求。
location 匹配的優先級(與location在配置文件中的順序無關)
= 精確匹配會第一個被處理。如果發現精確匹配,nginx停止搜索其他匹配。
普通字符匹配,正則表達式規則和長的塊規則將被優先和查詢匹配,也就是說如果該項匹配還需去看有沒有正則表達式匹配和更長的匹配。
^~ 則只匹配該規則,nginx停止搜索其他匹配,否則nginx會繼續處理其他location指令。
最后匹配理帶有"~"和"~*"的指令,如果找到相應的匹配,則nginx停止搜索其他匹配;當沒有正則表達式或者沒有正則表達式被匹配的情況下,那么匹配程度最高的逐字匹配指令會被使用。