xylz,imxylz

          關(guān)注后端架構(gòu)、中間件、分布式和并發(fā)編程

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

          Nginx 中的地址(location)

          語法: location [=|~|~*|^~|@] /uri/ { ... }

          默認(rèn)值: no

          上下文: server

          location可以配置依賴于URI的請求,根據(jù)不同的規(guī)則將請求轉(zhuǎn)發(fā)到相應(yīng)的后端服務(wù)器上。location的path規(guī)則支持正則表達(dá)式。 為了使用正則表達(dá)式,必須使用下面的匹配符:

          • ~* 不區(qū)分大小寫的正則表達(dá)式
          • ~ 區(qū)分大小寫的正則表達(dá)式

          匹配的規(guī)則是優(yōu)先使用常量字符串(非正則表達(dá)式),如果任何一個常量字符串匹配就停止匹配,返回匹配的結(jié)果。如果常量字符串不匹配就匹配正則表達(dá)式,找到第一個匹配的正則表達(dá)式規(guī)則就停止匹配,返回匹配的結(jié)果。如果正則表達(dá)式也不匹配就匹配URL的PATH(一級一級往上匹配,最終到/)。

          "="僅僅匹配URI完全一樣的地址。顯然正則表達(dá)式的匹配速度是慢于字符串的直接匹配的,所以如果一個地址是頻繁訪問的話,使用"="可以提高匹配的速度。

          任何一條不使用 "=" 或者 "^~" 前綴的常量字符串規(guī)則匹配就立即停止終止匹配。 小結(jié),匹配規(guī)則如下:

          1. 匹配"="的規(guī)則,如果完全匹配,終止匹配。
          2. 匹配普通字符串,如果匹配帶有"^~"前綴的,終止匹配。
          3. 匹配正則表達(dá)式,匹配的順序按照配置文件中的定義順序。
          4. 如果規(guī)則3匹配一個結(jié)果就終止匹配,否則使用規(guī)則2中的結(jié)果。

          特別強調(diào)的是,nginx不匹配編碼后的字符串,比如"/images/%20/test"中帶有一個空格,那么必須使用"/images/ /test"才能匹配,而不是使用編碼后的字符。

          下面是一個例子。

          location  = / {
          #僅僅匹配地址"/"
          [規(guī)則A]
          }
          location  / {
          # 匹配任何一個以"/"開頭的地址,所以說基本上匹配所有地址,但是正則表達(dá)式可能優(yōu)先于此匹配。
          [規(guī)則B]
          }
          location ^~ /images/ {
          # 匹配任何以"/images"開頭的地址,此匹配規(guī)則要優(yōu)先于正則表達(dá)式。
          [規(guī)則C]
          }
          location ~* \.(gif|jpg|jpeg)$ {
          # 匹配任何以"gif", "jpg", 或者".jpeg"結(jié)尾的地址。但是"/images/"目錄中的文件會被規(guī)則C優(yōu)先匹配。
          [規(guī)則D]
          }
          

          例如下面一些請求:

          / -> 規(guī)則A
          /documents/document.html -> 規(guī)則B
          /images/1.gif -> 規(guī)則C
          /documents/1.jpg -> 規(guī)則D
          

          四種規(guī)則可以以任何順序在配置文件中定義,同一條規(guī)則多條正則表達(dá)式匹配時,依賴其在配置文件中的順序。另外,嵌套的location可能導(dǎo)致未知的匹配結(jié)果。

          另外,前綴"@" 比較特別,用來處理錯誤頁面嘗試頁面(多頁面時順序匹配規(guī)則)。



          ©2009-2014 IMXYLZ |求賢若渴
          posted on 2010-01-29 16:05 imxylz 閱讀(21906) 評論(0)  編輯  收藏 所屬分類: nginx

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          ©2009-2014 IMXYLZ
          主站蜘蛛池模板: 贺兰县| 福泉市| 纳雍县| 湘乡市| 桓台县| 文登市| 游戏| 德江县| 灵石县| 新晃| 龙井市| 巩义市| 开远市| 邛崃市| 达孜县| 民和| 汉阴县| 靖边县| 北京市| 噶尔县| 安顺市| 嘉鱼县| 宜都市| 伊春市| 贵州省| 神木县| 永城市| 都兰县| 高青县| 桑日县| 额济纳旗| 三亚市| 深水埗区| 苍梧县| 商洛市| 贵南县| 伊春市| 慈溪市| 阿尔山市| 铜陵市| 南京市|