匹配指定的請求uri(請求uri不包含查詢字符串,如http://localhost:8000/test?age=18,請求url是/test)css
語法:location [ = | ~ | ~* | ^~ | @] /uri/ { configuration }html
匹配的優先級python
匹配符 匹配規則 優先級 = 精確匹配 # 1 ^~ 以某個字符串開頭 # 2 ~ 區分大小寫的正則匹配 # 3 ~* 不區分大小寫的正則匹配 # 4 !~ 區分大小寫不匹配的正則 # 5 !~* 不區分大小寫不匹配的正則 # 6 / 通用匹配,任何請求都會匹配到 # 7
server { listen 80; server_name www.zouzou.com; # 優先級1,精確匹配,根路徑 location =/ { return 400; } # 優先級2,以某個字符串開頭,以test開頭的,優先匹配這裏,區分大小寫 location ^~ /test{ root /data/test/; } # 優先級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
方法:rootweb
語法 root 路徑;服務器
默認值 root html;url
配置塊 http{} server {} location{}spa
alias:
語法: alias 路徑code
配置塊 location{}server
root和alias區別在nginx如何解釋location後面的url,這會使得二者分別以不一樣的方式講請求映射到服務器文件上,root參數是root路徑+location位置
# root實例1: location ^~ /test { root /data/test; # 注意這裏無關緊要結尾的 / } # 請求url是zouzou.com/test/index.html時 # web服務器會返回服務器上的/data/test/test/index.html
# root實例2: location ~* .*\.(jpg|gif|png|js|css)$ { root /data/test/; } # 請求url是zouzou.com/girl.gif時 # web服務器會返回服務器上的/data/test/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/; }