location、root、alias指令用法和區別
阿新 • • 發佈:2018-12-14
nginx配置靜態檔案路徑有兩種方式root和alias,指令的使用方法和作用域:
root
語法:root path
預設值:root html
配置區域:http、server、location、if
alias
語法:alias path
配置段:location
區別
alias是一個目錄別名的定義,root則是最上層目錄的定義。
例子
root例項:
location /a/ {
root /var/www/root/html/;
}
當訪問 htt://xxx.xxx.xxx/a/js/main.js 就會去找伺服器上的/var/www/root/html/a/js/main.js,相當於把root後面的路徑作為根目錄。最終的結果是 root路徑+請求url的路徑
alias例項1:
location /a/ {
alias /var/www/root/html/;
}
如果換成alias,請求htt://xxx.xxx.xxx/a/js/main.js 則會去找/var/www/root/html/js/main.js,這裡alias相當於別名。把匹配location後面的部分替換掉了。 alias例項2:
location /a {
alias /var/www/root/html/;
}
如果location後面是/a,訪問htt://xxx.xxx.xxx/abc/js/main.js 就會被替換成/var/www/root/html/bc/js/main.js,看到沒有,多了個目錄bc/,因為location後面是匹配/a,用alias把這個/a替換掉。就得到最終目錄。
###基於上面的分析。 注意:
- 使用alias時,目錄名後面一定要加"/"。
- alias在使用正則匹配時。要小心。
- alias只能位於location塊中。