1. 程式人生 > >nginx配置—之location模式匹配

nginx配置—之location模式匹配

jpeg ack fetch 定義 正則表達式 con 搜索 其他 error

1、location正則

~       表示一個正則匹配,區分大小寫
~*      表示一個正則匹配,不區分大小寫
^~      表示普通字符匹配,一般用來匹配目錄
=       表示普通字符精確匹配
@       定義一個自命名的location,用來在內部重定向,例如 error_page, try_files


2、location匹配的優先級

(1)location匹配的優先級與location在配置文件中的順序無關
(2)精確匹配( = ),首先處理精確匹配,如果匹配上,就停止搜索其他匹配
(3)普通字符匹配( ^~ ),越精確匹配,優先級越高,如果匹配上,停止搜索匹配
(4)正則表達式匹配,匹配定義的內容
(5)如果第4條規則產生匹配的話,就使用該結果,否則,使用第3條規則的結果

例1:基本匹配

location = / {
      # 只匹配 “/”
      [ configuration A ]
}
location  / {
      # 匹配以 “/”開頭的請求,即匹配所有
      # 但精確匹配或正則匹配會優先匹配
      [ configuration B ]
}
location ^~ /images/ {
       # 匹配以 /images/ 開頭的請求,並停止其他 location匹配
      [ configuration C ]
}
location ~* .(gif|jpg|jpeg)$ {
       # 匹配以 gif, jpg, 或者 jpeg結尾的請求
      [ configuration D ]
}

/ 符合 A /documents/document.html 符合B /images/1.gif 符合C /documents/1.jpg 符合D


例2:@location

error_page 404 = @fetch;
location @fetch(
       proxy_pass  http://fetch;
)

參考文章: http://www.nginx.cn/115.html

nginx配置—之location模式匹配