一、Location語法優先級排列
匹配符 匹配規則 優先級
= 精確匹配 1
^~ 以某個字符串開頭 2
~ 區分大小寫的正則匹配 3
~* 不區分大小寫的正則匹配 4
!~ 區分大小寫不匹配的正則 5
!~* 不區分大小寫不匹配的正則 6
/ 通用匹配,任何請求都會匹配到 7
二、nginx.conf配置文件實例
server {
listen 80;
server_name pythonav.cn;
#優先級1,精確匹配,根路徑
location =/ {
return 400;
}
#優先級2,以某個字符串開頭,以av開頭的,優先匹配這里,區分大小寫
location ^~ /av {
root /data/av/;
}
#優先級3,區分大小寫的正則匹配,匹配/media*****路徑
location ~ /media {
alias /data/static/;
}
#優先級4 ,不區分大小寫的正則匹配,所有的****.jpg|gif|png 都走這里
location ~* .*\.(jpg|gif|png|js|css)$ {
root /data/av/;
}
#優先7,通用匹配
location / {
return 403;
}
}
三、nginx語法之root和alias區別實戰
nginx指定文件路徑有root和alias兩種方法
區別在方法和作用域:
方法:
root
語法 root 路徑;
默認值 root html;
配置塊 http{} server {} location{}
alias
語法: alias 路徑
配置塊 location{}
root和alias區別在nginx如何解釋location后面的url,這會使得兩者分別以不同的方式講請求映射到服務器文件上
root參數是root路徑+location位置
root實例:
location ^~ /av {
root /data/av; 注意這里可有可無結尾的 /
}
請求url是pythonav.cn/av/index.html時
web服務器會返回服務器上的/data/av/av/index.html
root實例2:
location ~* .*\.(jpg|gif|png|js|css)$ {
root /data/av/;
}
請求url是pythonav.cn/girl.gif時
web服務器會返回服務器上的/data/static/girl.gif
alias實例:
alias參數是使用alias路徑替換location路徑
alias是一個目錄的別名
注意alias必須有 "/" 結束!
alias只能位於location塊中
請求url是pythonav.cn/av/index.html時
web服務器會返回服務器上的/data/static/index.html
location ^~ /av {
alias /data/static/;
}