亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    關(guān)于nginx location指令詳解

    關(guān)于nginx location指令詳解

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

    $request_uri

    location的匹配種類有哪些?

    =開頭表示精確匹配

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

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

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

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

    字符串匹配

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

    location搜索順序

    首先精確匹配 =

    其次匹配 ^~

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

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

    注意:

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

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

    精確匹配

    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, 毋容置疑,精確匹配優(yōu)先級最高!

    精確匹配的特殊情況

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

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

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

    是這樣的,精確匹配還是起作用了,請求目錄(非具體文件),nginx會將請求內(nèi)部定向到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正則匹配命中),

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

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

    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, 首部匹配命中

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

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

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號