亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

Location語法

location [=|~|~*|^~] /uri/ { … }

= 開頭表示精確匹配

^~ 開頭表示uri以某個(gè)常規(guī)字符串開頭,理解為匹配 url路徑即可。Nginx不對(duì)url做編碼,因此請(qǐng)求為/static/20%/aa,可以被規(guī)則^~ /static/ /aa匹配到(注意是空格)。

~ 開頭表示區(qū)分大小寫的正則匹配

~* 開頭表示不區(qū)分大小寫的正則匹配

!~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配 的正則

/ 通用匹配,任何請(qǐng)求都會(huì)匹配到。

1、精準(zhǔn)匹配和一般匹配

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

請(qǐng)求URL:http://192.168.60.106/zg/ 訪問時(shí)匹配的是:=/zg/

2、精準(zhǔn)匹配和一般匹配,uri后面不帶“/”匹配

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

請(qǐng)求URL:http://192.168.60.106/zg/ 訪問時(shí)匹配的是:/zg

3、精準(zhǔn)匹配和一般匹配,uri前面和后面都不帶“/”

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

請(qǐng)求URL:http://192.168.60.106/zg/ 訪問時(shí)匹配的是:= zg

4、精準(zhǔn)匹配和一般匹配,uri帶"/"和不帶"/"匹配

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

請(qǐng)求URL:http://192.168.60.106/zg/ 訪問時(shí)匹配的是:/zg/ 順序換也是一樣

綜上所述:路徑相同時(shí)的精準(zhǔn)匹配優(yōu)先,必須是滿足/uri/或者uri,要么uri兩邊都加/,要么uri兩邊都不加斜桿的情況

5、一般匹配時(shí)的匹配規(guī)則

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

在html下創(chuàng)建file,lfile文件夾,然后在file下創(chuàng)建images文件夾,在images下創(chuàng)建aa文件夾,在lfile下創(chuàng)建images文件夾,接著在images下創(chuàng)建aa文件夾,然后同時(shí)在兩個(gè)aa文件夾下導(dǎo)入test.jpg圖片,這樣file和lfile下都有images/aa路徑

請(qǐng)求url:http://192.168.60.106/images/aa/test.jpg,既能匹配/images/,又能匹配/images/aa,這時(shí)以最長uri匹配優(yōu)先,匹配的是:/images/aa

6、^~開頭的非正則匹配和一般匹配

^~代表非正則匹配,非正則,不需要繼續(xù)正則匹配。

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

^~:如果這個(gè)匹配使用^?前綴,搜索停止。這個(gè)前綴官網(wǎng)和網(wǎng)上都說得很含糊,加上這個(gè)前綴,是會(huì)停止搜索正則匹配,但是對(duì)一般匹配是不會(huì)停止的,也就是說還是可以匹配到一般匹配的。

請(qǐng)求url: http://192.168.60.106/images/aa/test.jpg,匹配結(jié)果:/images/aa/

7、^~開頭的非正則匹配和正則匹配

~ 開頭表示區(qū)分大小寫的正則匹配

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

請(qǐng)求url: http://192.168.60.106/images/aa/test.jpg,匹配結(jié)果:^~/images/

8、嚴(yán)格精準(zhǔn)匹配和正則匹配

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

嚴(yán)格精準(zhǔn)匹配,如果被嚴(yán)格精準(zhǔn)匹配到了,則不會(huì)繼續(xù)搜索正則匹配

如果http://192.168.60.106,這個(gè)就嚴(yán)格精準(zhǔn)匹配到了 /,則不會(huì)繼續(xù)匹配 ~ .html$

如果:http://192.168.60.106/index.html,則會(huì)被/ 匹配到,但是不是嚴(yán)格精準(zhǔn)匹配,則會(huì)繼續(xù)搜索正則匹配

9、正則匹配規(guī)則

都是正則uri的情況下,匹配是按照編輯順序的

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

請(qǐng)求URL:http://192.168.60.106/prefix/index.html,會(huì)優(yōu)先匹配前面定義的location。

10、@開頭的uri

如圖:

Nginx的 Location匹配規(guī)則,泣血總結(jié)

 

@開頭的,如果請(qǐng)求的 URI 存在,則本 nginx 返回對(duì)應(yīng)的頁面;如果不存在,則把請(qǐng)求代理到baidu.com 上去做個(gè)彌補(bǔ),其實(shí)就是做了一個(gè)容錯(cuò),把找不到的url全部轉(zhuǎn)發(fā)到fallback的反向代理服務(wù)器去。

最后總結(jié):

1. 先判斷精準(zhǔn)命中,如果命中,立即返回結(jié)果并結(jié)束解析過程

2. 判斷普通命中,如果有多個(gè)命中,記錄下來最長的命中結(jié)果

3、如果是^~開頭的命中,則不會(huì)繼續(xù)搜索正則命中,但是會(huì)繼續(xù)搜索一般命中

4. 繼續(xù)判斷正則表達(dá)式的解析結(jié)果,按配置里的正則表達(dá)式順序?yàn)闇?zhǔn),由上到下開始匹配,一旦匹配成功立刻返回結(jié)果,并結(jié)束解析過程。

延伸分析:a. 普通命中:順序無所謂,是因?yàn)榘疵虚L短來確定的 b. 正則命中:順序有所謂,因?yàn)槭菑那巴竺械?/p>

版權(quán)聲明:本文為CSDN博主「黃山技術(shù)猿」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/luoyang_JAVA/article/details/83507193

分享到:
標(biāo)簽:Nginx
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定