nginx 匹配規則小總結


nginx location

等號類型(=)的優先級最高,需要精確匹配。一旦匹配成功,則不再查找其他匹配項。
^~類型表達式。一旦匹配成功,則不再查找其他匹配項。

正則表達式類型(~ ~*)的優先級次之。如果有多個location的正則能匹配的話,則使用正則表達式最長的那個。

(location =) > (location 完整路徑) > (location ^~ 路徑) > (location ,* 正則順序) > (location 部分起始路徑) > (/)

nginx 配置 proxy_pass 路徑帶 / 的問題

用戶訪問的 url 為 http://klvchen.com/abc/test.html
eg:

#情況1: proxy_pass 后帶 / 
location  /abc/ {
                proxy_pass http://klvchen.com/;
} 
#會被代理成  http://klvchen.com/test.html

#情況2: proxy_pass 后不帶 / 
location  /abc/ {
                proxy_pass http://klvchen.com;
} 
#會被代理成  http://klvchen.com/abc/test.html

常用正則

.: 匹配除換行符以外的任意字符
?: 重復0次或1次
+: 重復1次或更多次
*: 重復0次或更多次
\d:匹配數字
^: 匹配字符串的開始
$: 匹配字符串的結束
{n}: 重復n次
{n,}: 重復n次或更多次
[c]: 匹配單個字符c
[a-z]: 匹配a-z小寫字母的任意一個
小括號()之間匹配的內容,可以在后面通過$1來引用,$2表示的是前面第二個()里的內容。正則里面容易讓人困惑的是\轉義特殊字符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM