站長資訊網
        最全最豐富的資訊網站

        關于nginx location指令詳解

        關于nginx location指令詳解

        location匹配的是nginx的哪個變量?

        $request_uri

        location的匹配種類有哪些?

        =開頭表示精確匹配

        ^~ 開頭,注意這不是一個正則表達式(是提升優先級的字符串匹配)–它的目的是優先于正則表達式的匹配。如果該location是最佳匹配,則不再進行正則表達式檢測。

        ~ 開頭表示區分大小寫的正則匹配;

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

        !~ && !~*:表示區分大小寫不匹配的正則和不區分大小寫的不匹配的正則

        字符串匹配

        /通用匹配, 如果沒有其它匹配,任何請求都會匹配到

        location搜索順序

        首先精確匹配 =

        其次匹配 ^~

        再其次按照配置文件的順序進行正則匹配

        最后是交給/進行通用匹配

        注意:

        當有匹配成功時,立刻停止匹配,按照當前匹配規則處理請求

        特別注意:字符串匹配優先搜索,但是只是記錄下最長的匹配 ,然后繼續搜索正則匹配,如果有正則匹配,則命中正則匹配,如果沒有正則匹配,則命中最長的字符串匹配。 ( 如果 ^~ 是最長的匹配,則會直接命中,停止搜索正則 )

        精確匹配

        location = /images/test.png {     echo 'config1'; } location  /images/test.png {     echo 'config2'; } location /images/test.png$ {     echo 'config3'; }

        如果此時請求 http://127.0.0.1/images/test.png 會輸出什么呢?

        輸出 config1, 毋容置疑,精確匹配優先級最高!

        精確匹配的特殊情況

        location = / {     index index.html; } location / {     echo 'config2'; }

        此時是輸入http://127.0.0.1 會輸出什么呢?

        是輸出 config2, 怎么精確匹配的優先級不靈了呢?

        是這樣的,精確匹配還是起作用了,請求目錄(非具體文件),nginx會將請求內部定向到index文件,

        既此時真正的請求是http://127.0.0.1/index.html, 這是 config2則被命中!

        所以精確匹配不要用來匹配 /

        字符串搜索與正則搜索

        location /images/test.png {     echo 'config1'; } location ^~ /images/ {     echo 'config2'; } location ~ /images/test.png$ {     echo 'config3'; } location ~ /images/ {     echo 'config4'; }

        如果此時請求 http://127.0.0.1/images/test.png 會輸出什么呢?

        當然是 config3,正則命中

        (雖然 config1 為最長匹配的字符串,此時只做記錄,后面還要搜索正則匹配,則config3正則匹配命中),

        仔細觀察可以發現config4也被匹配成功了,但是正則的匹配順序是按照location的定義順序匹配的,所以config3命中.

        字符串匹配優先級的提升( ^~ )

        location /images/ {     echo 'config1'; } location ^~ /images/test.png {     echo 'config2'; } location ~ /images/test.png$ {     echo 'config3'; } location ~ /images/ {     echo 'config4'; }

        如果此時請求 http://127.0.0.1/images/test.png 會輸出什么呢?

        當然是config2, 首部匹配命中

        (因為字符串匹配是優先搜索的,此時發現config2 為最長的字符串匹配且為^~匹配方式,所以停止搜索正則,直接命中!)

        所以這里的 ^~ 符號比較特殊,就是為了提高字符串匹配的優先級,優先于正則匹配.

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩熟女精品一区二区三区| 国产精品久久久福利| 国产精品污WWW在线观看| 久久久久国产精品嫩草影院| 四虎精品成人免费观看| 久久精品国产网红主播| 午夜亚洲av永久无码精品| 刺激无码在线观看精品视频| 岛国精品一区免费视频在线观看| 亚洲精品无码国产| 合区精品久久久中文字幕一区| 国产精品99久久久久久宅男| 精品国产_亚洲人成在线高清| 国内揄拍高清国内精品对白| 国产精品一级AV在线播放| 精品无人区无码乱码毛片国产| 国产精品久久99| 大伊香蕉精品一区视频在线 | 国产亚洲精品高清在线| 老司机69精品成免费视频| 99在线精品视频观看免费| 精品无码国产污污污免费网站 | 国精无码欧精品亚洲一区| 熟妇人妻VA精品中文字幕| 亚洲一区无码精品色| 亚洲av午夜成人片精品电影| 香港aa三级久久三级老师2021国产三级精品三级在 | 国产欧美精品一区二区三区四区| 99熟女精品视频一区二区三区| 亚洲午夜久久久精品影院| 亚洲第一精品福利| 91精品国产品国语在线不卡| 北岛玲日韩精品一区二区三区| 99R在线精品视频在线播放| 2020最新久久久视精品爱| 国产成人1024精品免费| 国产精品理论片在线观看| 国产高清在线精品一区二区三区| 国产综合精品久久亚洲 | 国产高清日韩精品欧美激情| 国产午夜亚洲精品国产成人小说 |