Nginx服務(wù)器的location指令匹配規(guī)則詳解
Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用來為匹配的 URI 進(jìn)行配置,URI 即語法中的”/uri/”,可以是字符串或正則表達(dá)式。但如果要使用正則表達(dá)式,則必須指定前綴。
nginx location語法
基本語法:location [=|~|~*|^~] /uri/ { … }
- = 嚴(yán)格匹配。如果這個(gè)查詢匹配,那么將停止搜索并立即處理此請求。
- ~ 為區(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)樗姓埱蠖家?/ 開頭。但是正則表達(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é)尾的請求。然而所有 /images/ 目錄的請求將使用 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)先級最高,如果匹配上,就不會(huì)再去匹配其它的規(guī)則了。
- Nginx反向代理location和proxy_pass配置規(guī)則詳細(xì)總結(jié)
- Nginx的location的常見規(guī)則優(yōu)先級問題
- 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)文章
Linux下Nginx負(fù)載均衡多個(gè)tomcat配置的方法步驟
這篇文章主要介紹了Linux下Nginx負(fù)載均衡多個(gè)tomcat配置的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04比較完整的Nginx配置文件nginx.conf常用參數(shù)中文詳解
這篇文章主要介紹了比較完整的Nginx配置文件nginx.conf常用參數(shù)中文詳解,需要的朋友可以參考下2015-07-07Nginx訪問控制與參數(shù)調(diào)優(yōu)的方法
這篇文章主要介紹了Nginx訪問控制與參數(shù)調(diào)優(yōu)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03采用ngxtop實(shí)現(xiàn)nginx實(shí)時(shí)訪問數(shù)據(jù)統(tǒng)計(jì)
這篇文章主要介紹了采用ngxtop實(shí)現(xiàn)nginx實(shí)時(shí)訪問數(shù)據(jù)統(tǒng)計(jì),需要的朋友可以參考下2014-07-07nginx?搭建http-flv(rtmp)流媒體的方法步驟
本文主要介紹了nginx?搭建http-flv(rtmp)流媒體的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2023-06-06