nginx location配置詳細解釋

語法規則

location [=|~|~*|^~] /uri/ { … }

  • = 開頭表示精確匹配
  • ^~ 開頭表示uri以某個常規字符串開頭,理解爲匹配 url路徑即可。nginx不對url做編碼,因此請求爲/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。以xx開頭
  • ~ 開頭表示區分大小寫的正則匹配 以xx結尾
  • ~* 開頭表示不區分大小寫的正則匹配 以xx結尾
  • !~和!~*分別爲區分大小寫不匹配及不區分大小寫不匹配 的正則
  • / 通用匹配,任何請求都會匹配到。

匹配順序

首先精確匹配 = -> 其次以xx開頭匹配^~ -> 然後是按文件中順序的正則匹配 -> 最後是交給 / 通用匹配。
當有匹配成功時候,停止匹配,按當前匹配規則處理請求。

常用的location匹配規則

  • 配置指定文件名
# icon
location = /favicon.ico {
   root images; # 文件在images目錄中
   expires 7d;  # 緩存7天
}
  • 根據文件名模糊匹配
# 百度統一驗證
location ~* ^/baidu_verify_[\w]+.html$ {
   root  html;
}
  • 路徑部分匹配
# 靜態圖片
location ^~ /cdn-images/ {
   alias images/;  # 注意使用的alias及後面的/
   expires 7d;
}
  • 動靜分離
# 靜態文件
location ~* \.(html|jpg|png)$ {
    root   cloud-web;
    index  index.html index.htm;
}  
# 動態請求
location ~* /hbm/  {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass   http://10.0.1.210:8769;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章