主頁(yè) > 知識(shí)庫(kù) > Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則介紹

Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則介紹

熱門(mén)標(biāo)簽:地圖標(biāo)注企業(yè)名稱(chēng)侵權(quán)案件 企業(yè)400電話辦理哪正規(guī) 工廠位置地圖標(biāo)注 地圖標(biāo)注需要現(xiàn)場(chǎng)嗎 繽客網(wǎng)注冊(cè)時(shí)地圖標(biāo)注出不來(lái) 網(wǎng)站上插入地圖標(biāo)注內(nèi)容 400電話辦理哪家好廠商 鶴壁電銷(xiāo)外呼系統(tǒng)怎么安裝 重慶營(yíng)銷(xiāo)外呼系統(tǒng)排名

前言

最近幫客戶配置服務(wù)器,經(jīng)常修改Nginx的配置文件,頻繁的用到正式匹配規(guī)則,這里整理了一些常用的正則參數(shù)及規(guī)則,以備查詢。

Nginx配置中Location的語(yǔ)法規(guī)則 location [ = | ~ | ~* | ^~ | !~ | !~* ] /uri/{ … }

  1. = 表示精確匹配
  2. ~ 表示區(qū)分大小寫(xiě)正則匹配
  3. ~* 表示不區(qū)分大小寫(xiě)正則匹配
  4. ^~ 表示URI以某個(gè)常規(guī)字符串開(kāi)頭
  5. !~ 表示區(qū)分大小寫(xiě)正則不匹配
  6. !~* 表示不區(qū)分大小寫(xiě)正則不匹配
  7. / 通用匹配,任何請(qǐng)求都會(huì)匹配到

匹配順序

多個(gè)location配置的情況下匹配順序?yàn)椋?/p>

首先匹配 =
其次匹配 ^~
其次是按文件中順序的正則匹配
最后是交給 / 通用匹配
當(dāng)有匹配成功時(shí)候,停止匹配,按當(dāng)前匹配規(guī)則處理請(qǐng)求。

. 匹配除換行符以外的任意字符
\w 匹配字母或數(shù)字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞的開(kāi)始或結(jié)束
^ 匹配字符串的開(kāi)始
$ 匹配字符串的結(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     匹配不是單詞開(kāi)頭或結(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/開(kāi)始的請(qǐng)求轉(zhuǎn)發(fā)給Account服務(wù)器
location /account/ {
 proxy_pass http://127.0.0.1:8080/
}
#將/order/開(kāi)始的請(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重寫(xiě),瀏覽器地址欄不變。
  • 使用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)文章希望大家以后多多支持腳本之家!

標(biāo)簽:日照 棗莊 鹽城 渭南 克拉瑪依 東莞 常州 96

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則介紹》,本文關(guān)鍵詞  Nginx,正則,表達(dá)式,相關(guān),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則介紹》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Nginx正則表達(dá)式相關(guān)的參數(shù)和規(guī)則介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章