<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    Nginx 的 location 指令,允許對不同的 URI 進行不同的配置,既可以是字符串,也可以是正則表達式。使用正則表達式,須使用以下前綴:
            (1) ~*, 表示不區分大小寫的匹配。
            (2) ~, 表示區分大小寫的匹配。

            對于非正則的匹配,即字符串匹配,有如下前綴:
            (1) ^~, 表示匹配到字符串后,終止正則匹配。
            (2) =, 表示精確匹配。
            (3) @, 當然,這個也算不上字符串匹配。如果可以,你也可以將其理解成是正則匹配。它是一個命名標記,這種 location 不會用于正常的請求,它們通常只用于處理內部的重定向。

            在匹配過程中,Nginx 將首先匹配字符串,然后匹配正則表達式。匹配到第一個正則表達式后,會停止搜索。如果匹配到正則表達式,則使用正則表達式的搜索結果,如果沒有匹配到正則表達式,則使用字符串的搜索結果。

            上面這段話的意思是說,有一個字符串和正則表達式均能匹配上,那么會使用正則表達式的搜索結果。這里,我們可以使用前綴"^~" 來禁止匹配到字符串后,繼續檢查正則表達式。匹配到 URI 后,將停止搜索。

            使用前綴 "=" 可以進行精確的 URI 匹配,如果找到匹配的 URI,則停止搜索。"location = /" 只能匹配到 "/",而 "/test.html" 則不能被匹配。

            正則表達式的匹配,按照它們在配置文件中的順序進行,寫在前面的優先。

            另外,前綴 "@" 是一個命名標記,這種 location 不會用于正常的請求,它們通常只用于處理內部的重定向(例如:error_page, try_files)。

            最后總結一下匹配的過程:
            (1) 前綴 "=" 先進行匹配,如果找到了,終止搜索。
            (2) 對所有其它 location 進行非正則的匹配,找到最精確匹配(對于 /blog/admin/ 這個 URI, location /blog 要比 location / 長,因此 location /blog 要比 location / 要精確)的那個。如果找到的這個是帶"^~" 前綴的,則終止搜索并直接返回找到的這個,否則開始正則查找。會不會出現所有的非正則匹配都無法匹配到 URI 呢,當然,你若不定義一個 location /,這種情況的確會發生,沒關系啊,它會進行正則查找的。
            (3) 正則查找,按照我們配置文件中配置的 location 順序進行查找。

            (4) 如果正則查找匹配成功,則使用此正則匹配的 location,否則,使用第二步查找的結果。如果『否則』發生了,同時,第二步中的粗體字部分的假設的情況也發生了,怎么辦?404 會等著你的。


    參考:nginx location的管理以及查找


    例子:

    location = / {
    # 只匹配 / 查詢。
    [ configuration A ]
    }

    location / {
    # 匹配任何查詢,因為所有請求都已 / 開頭。但是正則表達式規則和長的塊規則將被優先和查詢匹配。
    [ configuration B ]
    }

    location ^~ /images/ {
    # 匹配任何已 /images/ 開頭的任何查詢并且停止搜索。任何正則表達式將不會被測試。
    [ configuration C ]
    }

    location ~* \.(gif|jpg|jpeg)$ {
    # 匹配任何已 gif、jpg 或 jpeg 結尾的請求。然而所有 /images/ 目錄的請求將使用 Configuration C。
    [ configuration D ]
    }

    例子請求:

    1, /   ->   精確匹配到第1個location,匹配停止,使用configuration A
    2,/some/other/url    ->  首先前綴部分字符串匹配到了第2個location,然后進行正則匹配,顯然沒有匹配上,則使用第2個location的配置configurationB
    3,/images /1.jpg  ->  首先前綴部分字符串匹配到了第2個location,但是接著對第3個location也前綴匹配上了,而且這時已經是配置文件里面對這個url的最大字 符串匹配了,并且location帶有 "^~" 前綴,則不再進行正則匹配,最終使用configuration C
    4,/some/other/path/to/1.jpg  -> 首先前綴部分同樣字符串匹配到了第2個location,然后進行正則匹配,這時正則匹配成功,則使用congifuration D

    注意:按任意順序定義這4個配置結果將仍然一樣。

    posted on 2012-04-17 19:45 ivaneeo 閱讀(1058) 評論(0)  編輯  收藏 所屬分類: 互聯網
    主站蜘蛛池模板: 国产aⅴ无码专区亚洲av| 免费一级做a爰片久久毛片潮喷| 国产亚洲精品岁国产微拍精品| 伊人久久国产免费观看视频| 亚洲XX00视频| 深夜A级毛片视频免费| 国产免费午夜a无码v视频| 国产精品亚洲片在线花蝴蝶| 免费的一级黄色片| 理论亚洲区美一区二区三区| 婷婷亚洲天堂影院| eeuss免费天堂影院| 亚洲国产精品一区二区久久hs| 成人黄网站片免费视频| 亚洲综合久久成人69| 日韩免费a级毛片无码a∨| 亚洲а∨精品天堂在线| 亚洲男人第一无码aⅴ网站| 中文字幕在线视频免费| 国产V亚洲V天堂A无码| h片在线免费观看| 亚洲熟妇AV日韩熟妇在线| 免费国产成人高清在线观看麻豆| 免费人妻精品一区二区三区| 亚洲精品中文字幕乱码三区 | 亚洲日韩小电影在线观看| AAA日本高清在线播放免费观看| 久久亚洲精品无码AV红樱桃| 99视频在线精品免费观看6| 色婷婷精品免费视频| 亚洲色偷拍另类无码专区| 99久久免费中文字幕精品| 中文字幕乱码亚洲无线三区| 亚洲第一永久AV网站久久精品男人的天堂AV| 羞羞网站免费观看| 亚洲AV无码不卡无码| 最近中文字幕无免费视频| 一级毛片免费毛片毛片| 亚洲理论在线观看| 亚洲国产精品成人AV无码久久综合影院| 中文字幕成人免费高清在线|