1. 程式人生 > >location、root、alias指令用法和區別

location、root、alias指令用法和區別

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替換掉。就得到最終目錄。

###基於上面的分析。 注意:

  1. 使用alias時,目錄名後面一定要加"/"。
  2. alias在使用正則匹配時。要小心。
  3. alias只能位於location塊中。