Nginx服務(wù)器的location指令匹配規(guī)則詳解
Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用來為匹配的 URI 進(jìn)行配置,URI 即語法中的”/uri/”,可以是字符串或正則表達(dá)式。但如果要使用正則表達(dá)式,則必須指定前綴。
nginx location語法
基本語法:location [=|~|~*|^~] /uri/ { … }
- = 嚴(yán)格匹配。如果這個(gè)查詢匹配,那么將停止搜索并立即處理此請(qǐng)求。
- ~ 為區(qū)分大小寫匹配(可用正則表達(dá)式)
- ~* 為不區(qū)分大小寫匹配(可用正則表達(dá)式)
- !~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配
- ^~ 如果把這個(gè)前綴用于一個(gè)常規(guī)字符串,那么告訴nginx 如果路徑匹配那么不測試正則表達(dá)式。
Location語法語法:location [=|~|~*|^~] /uri/ { … }
注:
1、~ 為區(qū)分大小寫匹配
2、~* 為不區(qū)分大小寫匹配
3、!~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配
例子:
location = / {
# matches the query / only.
# 只匹配 / 查詢。
[ configuration A ]
}
location / {
# matches any query, since all queries begin with /, but regular
# expressions and any longer conventional blocks will be
# matched first.
# 匹配任何查詢,因?yàn)樗姓?qǐng)求都已 / 開頭。但是正則表達(dá)式規(guī)則和長的塊規(guī)則將被優(yōu)先和查詢匹配。
[ configuration B ]
}
location ^~ /images/ {
# matches any query beginning with /images/ and halts searching,
# so regular expressions will not be checked.
# 匹配任何已 /images/ 開頭的任何查詢并且停止搜索。任何正則表達(dá)式將不會(huì)被測試。
[ configuration C ]
}
location ~* .(gif|jpg|jpeg)$ {
# matches any request ending in gif, jpg, or jpeg. However, all
# requests to the /images/ directory will be handled by
# Configuration C.
# 匹配任何已 gif、jpg 或 jpeg 結(jié)尾的請(qǐng)求。然而所有 /images/ 目錄的請(qǐng)求將使用 Configuration C。
[ configuration D ]
}
我的添加模式,動(dòng)靜分離
location ^~ /(images|scripts|styles|upload)/ {
root /www/abc.com/www/htdocs;
expires 30d;
}
location ~*\.(gif|jpg|jpeg|png|css|ico|html)$ {
root /www/abc.com/www/htdocs;
expires 30d;
}
如果要定義多個(gè)location,則可以有2種方式:
使用/ :location / { client_max_body_size 200m; proxy_connect_timeout 30; proxy_set_header Host $http_host; proxy_set_header x-forwarded-for $remote_addr; proxy_pass http://127.0.0.1:8008; } location /tmp/{ root /; internal; } 采用這種方式,/tmp可以放在/的下面,因?yàn)椤?是匹配任何查詢,但是正則表達(dá)式規(guī)則和長的塊規(guī)則將被優(yōu)先和查詢匹配”
使用~ /* : location ~ /tmp/ { root /tmp; internal; } location ~ /* { client_max_body_size 20m; proxy_connect_timeout 30; fastcgi_pass fpass; include fastcgi_params; } 采用這種方式,/tmp則必須放在~ /*這個(gè)前面,因?yàn)閪是正則匹配的,正則匹配是有順序的,只要匹配上就不會(huì)再往下匹配了。除非在conf中有定義=或者^~,也就是說=和^~的優(yōu)先級(jí)最高,如果匹配上,就不會(huì)再去匹配其它的規(guī)則了。
- Nginx反向代理location和proxy_pass配置規(guī)則詳細(xì)總結(jié)
- Nginx的location的常見規(guī)則優(yōu)先級(jí)問題
- nginx 配置location匹配規(guī)則實(shí)例講解
- Nginx Location指令URI匹配規(guī)則詳解小結(jié)
- Nginx location匹配規(guī)則的方法示例
- nginx配置location總結(jié)location正則寫法及rewrite規(guī)則寫法
- 詳解nginx配置location總結(jié)及rewrite規(guī)則寫法
- 詳解Nginx location 匹配規(guī)則
- nginx中的路徑匹配location規(guī)則詳解
相關(guān)文章
Nginx限制搜索引擎爬蟲頻率、禁止屏蔽網(wǎng)絡(luò)爬蟲配置示例
這篇文章主要介紹了Nginx限制搜索引擎爬蟲頻率、禁止屏蔽網(wǎng)絡(luò)爬蟲配置示例,限制爬蟲頻率用于一些無良爬蟲,禁止爬蟲用于一些不需要收錄的網(wǎng)站,需要的朋友可以參考下2014-07-07
Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn)
這篇文章主要介紹了Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
nginx實(shí)現(xiàn)反向代理出現(xiàn)502的問題解決
本文主要介紹了nginx實(shí)現(xiàn)反向代理出現(xiàn)502的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
Nginx+Keepalived實(shí)現(xiàn)雙機(jī)主備的方法
這篇文章主要介紹了Nginx+Keepalived實(shí)現(xiàn)雙機(jī)主備的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解
這篇文章主要介紹了Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問題,需要的朋友可以參考下2016-01-01

