nginx--location詳解
阿新 • • 發佈:2018-12-18
location執行順序
location [=|~|~*|^~] /uri/ { … }
### 通用匹配符
1、^: 匹配字串的開始位置;
2、 $:匹配字串的結束位置;
3、.*: .匹配任意字元,*匹配數量0到正無窮;
4、. 斜槓用來轉義,.匹配 . 特殊使用方法,記住記性了;
5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp
6、i不區分大小寫
一.正則表示式匹配,其中:
- ~ 為區分大小寫匹配
- ~* 為不區分大小寫匹配
- !~ 和!~*分別為區分大小寫不匹配及不區分大小寫不匹配
模式 | 含義 |
---|---|
location = /uri | = 表示精確匹配,只有完全匹配上才能生效 |
location ^~ /uri | ^~ 開頭對URL路徑進行字首匹配,並且在正則之前。 |
location ~ pattern | 開頭表示區分大小寫的正則匹配 |
location ~* pattern | 開頭表示不區分大小寫的正則匹配 |
location /uri | 不帶任何修飾符,也表示字首匹配,但是在正則匹配之後 |
location / | 通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default |
location__ proxy_pass
在nginx中配置proxy_pass代理轉發時,如果在proxy_pass後面的url加/,表示絕對根路徑;如果沒有/,表示相對路徑,把匹配的路徑部分也給代理走。
比如:我訪問 http://192.168.1.1/proxy/index/
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
############# 代理的url http://127.0.0.1/index
location /proxy/ {
proxy_pass http://127.0.0.1;
}
###########代理到URL:http://127.0.0.1/proxy/index
location __ 靜態檔案代理 root 和 alias 的區別 如果用root屬性: root代理的路徑+location路徑 如果用alias屬性 : alias代理的路徑 比如:我瀏覽器訪問地址為192.168.1.1/html/abc.html
location /html/{
root /home/tz/static/;
}
######## 代理到URL /home/tz/static/html/abc.html
location /html/
{
ailas /home/tz/static/;
}
########## 代理到URL /home/tz/static/abc.html