Nginx 的 Location 從零開始配置

基礎知識

  1. Nginx location 配置語法html

    1. location [ = | ~ | ~* | ^~ ] uri { ... }
        2. location @name { ... }
    1. location 配置能夠有兩種配置方法nginx

      1.前綴 + uri(字符串/正則表達式)
      2.@ + name
    2. 前綴含義正則表達式

      =  :精確匹配(必須所有相等)
          ~  :大小寫敏感
          ~* :忽略大小寫
          ^~ :只需匹配uri部分
          @  :內部服務跳轉
  2. Location 基礎知識shell

    1.location 是在 server 塊中配置。
    2.能夠根據不一樣的 URI 使用不一樣的配置(location 中配置),來處理不一樣的請求。
    3.location 是有順序的,會被第一個匹配的location 處理。code

Location 配置demo

1.=,精確匹配server

location = / {
            #規則
        }
        # 則匹配到 `http://www.example.com/` 這種請求。

2.~,大小寫敏感htm

location ~ /Example/ {
                #規則
        }
        #請求示例
        #http://www.example.com/Example/  [成功]
        #http://www.example.com/example/  [失敗]

3.~*,大小寫忽略ip

location ~* /Example/ {
                #規則
    }
    # 則會忽略 uri 部分的大小寫
    #http://www.example.com/Example/  [成功]
    #http://www.example.com/example/  [成功]

4.^~,只匹配以 uri 開頭資源

location ^~ /img/ {
            #規則
    }
    #以 /img/ 開頭的請求,都會匹配上
    #http://www.example.com/img/a.jpg   [成功]
    #http://www.example.com/img/b.mp4 [成功]

5.@,nginx內部跳轉字符串

location /img/ {
        error_page 404 @img_err;
    }
    
    location @img_err {
        # 規則
    }
    #以 /img/ 開頭的請求,若是連接的狀態爲 404。則會匹配到 @img_err 這條規則上。

總結

Nginx 中的 location 並無想象中的很難懂,沒必要懼怕。多找資料看看,多嘗試。你就會有收穫。

參考

  1. http://nginx.org/en/docs/http/ngx_http_core_module.html#location

  2. 統一資源標誌符

相關文章
相關標籤/搜索