nginx location

nginx location

Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default:    —
Context:    server, location

location匹配

  • 普通前綴匹配
    • ^~:匹配以指定字符串開頭的uri,普通字符匹配,不是正則匹配 location ^~/oms-web
      = :普通字符精確匹配 location =/
      None /oms-web
  • 正則匹配
    • ~ :不區分大小寫 location ~.(gif|jpg|jpeg)$
      ~:區分大小寫 location ~\ .(gif|jpg|jpeg)$
  • "@" named location
    • 用於內部重定向

location匹配優先級

  • 普通前綴匹配,按照最長匹配優先,跟在文件中編輯的上下順序無關;
  • 正則匹配,按照在配置文件中自上而下,最先匹配優先,一旦匹配就終止;
  • 正則匹配優先於普通前綴匹配,但是讓步 = 精確匹配,如果最長前綴匹配位置用修飾符 "^ ~" ,匹配到後,將不再進行正則匹配。
  • @ location 只用於內部

總結

  • nginx 對給定請求的的location匹配,首先是檢查 普通前綴的匹配的配置,選擇並記住具有最長匹配前綴的配置位置,然後,按配置文件自上而下 檢查 正則表達式匹配的配置,對正則表達式的搜索終止於第一個匹配,並使用相應的配置,如果沒有匹配正則表達式,則使用前面記住的前綴位置的配置。
  • 例外說明:
    • 如果最長前綴匹配位置用修飾符 "^ ~" ,匹配到後,將不再進行正則匹配。
    • 如果“/”請求頻繁發生,那麼定義“location = /”將加快處理這些請求,因爲搜索在第一次比較之後立即終止。 注意精確匹配不能包含嵌套location

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章