1、Nginx location規則html
^~ 標識符匹配後面跟一個字符串。匹配字符串後將中止對後續的正則表達式進行匹配。nginx
= 精確匹配,如location=/,只會匹配url爲/的請求正則表達式
~ 區分大小寫的匹配ide
~* 不區分大小寫的匹配測試
!~ 對區分大小寫的匹配取反url
!~* 對不區分大小寫的匹配取反code
/ 通用匹配,若是沒有其餘匹配,任何請求都會被匹配到htm
2、正則表達式字符串
? 重複前面的字符0次或者1次it
. 匹配除換行符外的任意1個字符
(a|b) 匹配a或者b
^ 以...開頭
$ 以...結尾
{n} 重複前面的字符n次
{n,} 重複前面的字符n次或更屢次
{n,m} 重複前面的字符n次到m次
*? 重複前面的字符0次或者屢次,但儘量少重複
+? 重複前面的字符1次或者屢次,但儘量少重複
?? 重複前面的字符0次或1次,但儘量少重複
{n,m}? 重複前面的字符n次到m次,但儘量少重複
{n,}? 重複前面的字符n次以上,但儘量少重複
[a] 匹配單個字符a
[a-z] 匹配a-z小寫字母的任意一個
[^a] 匹配除了a之外的任意字符
[^abc] 匹配除了abc這幾個字母之外的任意字符
3、Nginx location匹配順序的優先級
(location =) > (location 完整路徑) >(location ^~路徑)>(location ~,~*正則順序) > (location 部分起始路徑) > (/)
實例測試
一、location 正則下的 root 和 alias
location / { root /nas/front/; }
若是一個 URL 是 front.test.com/a.html , 那麼訪問到的是 /nas/front/a.html 文件
location /test/ { root /nas/front/; }
若是一個 URL 是 front.test.com/test/a.html , 那麼訪問到的是 /nas/front/test/a.html 文件未完,待續