Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則介紹
前言
最近幫客戶配置服務(wù)器,經(jīng)常修改Nginx的配置文件,頻繁的用到正式匹配規(guī)則,這里整理了一些常用的正則參數(shù)及規(guī)則,以備查詢。
Nginx配置中Location的語(yǔ)法規(guī)則 location [ = | ~ | ~* | ^~ | !~ | !~* ] /uri/{ … }
- = 表示精確匹配
- ~ 表示區(qū)分大小寫正則匹配
- ~* 表示不區(qū)分大小寫正則匹配
- ^~ 表示URI以某個(gè)常規(guī)字符串開頭
- !~ 表示區(qū)分大小寫正則不匹配
- !~* 表示不區(qū)分大小寫正則不匹配
- / 通用匹配,任何請(qǐng)求都會(huì)匹配到
匹配順序
多個(gè)location配置的情況下匹配順序?yàn)椋?/p>
首先匹配 =
其次匹配 ^~
其次是按文件中順序的正則匹配
最后是交給 / 通用匹配
當(dāng)有匹配成功時(shí)候,停止匹配,按當(dāng)前匹配規(guī)則處理請(qǐng)求。
. 匹配除換行符以外的任意字符
\w 匹配字母或數(shù)字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞的開始或結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束* 重復(fù)零次或更多次
+ 重復(fù)一次或更多次
? 重復(fù)零次或一次
{n} 重復(fù)n次
{n,} 重復(fù)n次或更多次
{n,m} 重復(fù)n到m次
*? 重復(fù)任意次,但盡可能少重復(fù)
+? 重復(fù)1次或更多次,但盡可能少重復(fù)
?? 重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}? 重復(fù)n到m次,但盡可能少重復(fù)
{n,}? 重復(fù)n次以上,但盡可能少重復(fù)\W 匹配任意不是字母,數(shù)字,下劃線,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數(shù)字的字符
\B 匹配不是單詞開頭或結(jié)束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個(gè)字母以外的任意字符
常用的規(guī)則
精確匹配
location = / { proxy_pass http://127.0.0.1:9090/ }
將所有請(qǐng)求直接轉(zhuǎn)發(fā)給服務(wù)器的9090端口。
處理靜態(tài)文件
#目錄匹配 location ^~ /static/ { root /webroot/static/; } #后綴匹配 location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { root /webroot/res/; }
轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求到后端應(yīng)用服務(wù)器
#將/account/開始的請(qǐng)求轉(zhuǎn)發(fā)給Account服務(wù)器 location /account/ { proxy_pass http://127.0.0.1:8080/ } #將/order/開始的請(qǐng)求轉(zhuǎn)發(fā)給Order服務(wù)器 location /order/ { proxy_pass http://127.0.0.1:9090/ }
rewrite指令
- last 相當(dāng)于apache里面的[L]標(biāo)記,表示rewrite。
- break 本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則。
- redirect 返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址。
- permanent 返回301永久重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址。
- 使用last和break實(shí)現(xiàn)URI重寫,瀏覽器地址欄不變。
- 使用alias指令必須用last標(biāo)記;使用proxy_pass指令時(shí),需要使用break標(biāo)記。
- last標(biāo)記在本條rewrite規(guī)則執(zhí)行完畢后,會(huì)對(duì)其所在server{……}標(biāo)簽重新發(fā)起請(qǐng)求,而break標(biāo)記則在本條規(guī)則匹配完成后,終止匹配。
總結(jié)
到此這篇關(guān)于Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則的文章就介紹到這了,更多相關(guān)Nginx正則參數(shù)及規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的方法
- Nginx的正則表達(dá)式詳解
- nginx location 配置 正則表達(dá)式實(shí)例詳解
- Nginx if語(yǔ)句加正則表達(dá)式實(shí)現(xiàn)字符串截?cái)?/a>
- 詳解nginx中l(wèi)ocation、rewrite用法總結(jié)
- nginx配置location總結(jié)location正則寫法及rewrite規(guī)則寫法
- 詳解nginx配置location總結(jié)及rewrite規(guī)則寫法
- 詳解nginx rewrite和根據(jù)url參數(shù)location
- nginx中的正則表達(dá)式及l(fā)ocation和rewrite總結(jié)
相關(guān)文章
nginx容器配置文件獨(dú)立的實(shí)現(xiàn)
本文主要介紹了nginx容器配置文件獨(dú)立,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Nginx index指令使用及設(shè)置網(wǎng)站默認(rèn)首頁(yè)
index指令用于指定處理請(qǐng)求時(shí)使用的默認(rèn)文件,本文主要介紹了Nginx index指令使用及設(shè)置網(wǎng)站默認(rèn)首頁(yè),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07Nginx中配置過濾爬蟲的User-Agent的簡(jiǎn)單方法
這篇文章主要介紹了Nginx中配置過濾爬蟲的User-Agent的簡(jiǎn)單方法,文中羅列了一些常用搜索引擎的爬蟲名稱以免造成不必要的過濾,需要的朋友可以參考下2016-01-01nginx支持.htaccess文件實(shí)現(xiàn)偽靜態(tài)的方法分享
這篇文章主要介紹了nginx支持.htaccess文件實(shí)現(xiàn)偽靜態(tài)的方法分享,需要的朋友可以參考下2015-01-01Linux 系統(tǒng) nginx 服務(wù)器安裝及負(fù)載均衡配置詳解
nginx(engine x) 是一個(gè) 高性能 的 HTTP 和 反向代理 服務(wù)器、郵件代理服務(wù)器以及通用的 TCP/UDP 代理服務(wù)器。這篇文章主要介紹了Linux 系統(tǒng) nginx 服務(wù)器安裝及負(fù)載均衡配置詳解,需要的朋友可以參考下2019-07-07