[轉] Nginx配置中的location、root、alias


Nginx配置中的location、root、alias

location & root

初始配置

[root@adailinux vhost]# cat rio.conf server { listen 80; server_name rio.com; location /r/ { root /data/wwwroot/rio.com/; } }

目錄結構

[root@adailinux vhost]# tree /data/wwwroot/rio.com/ /data/wwwroot/rio.com/ ├── file1.html └── r ├── file2.html └── t └── file3.html

測試

更改配置

[root@adailinux vhost]# cat rio.conf server { listen 80; server_name rio.com; location /r/ { root /data/wwwroot/rio.com/t/; } } [root@adailinux vhost]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@adailinux vhost]# /usr/local/nginx/sbin/nginx -s reload

測試:

 

總結

location和root組合相當於在root指定目錄下進行location匹配,location所匹配內容必須保證在root指定目錄的子目錄,否則配置無效,而且location只能向下匹配,不能匹配location指定目錄上一級目錄中的內容。

location & alias

初始配置

[root@adailinux vhost]# cat rio.conf server { listen 80; server_name rio.com; location /r/ { alias /data/wwwroot/rio.com/r/; } }

測試

更改配置

[root@adailinux vhost]# cat rio.conf server { listen 80; server_name rio.com; location /r/ { alias /data/wwwroot/rio.com/; } } [root@adailinux vhost]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@adailinux vhost]# /usr/local/nginx/sbin/nginx -s reload

測試

總結

location與alias組合,需要保證location匹配目錄與alias指定目錄級別相同,否則配置無效,與location和root組合相同的是,location所匹配內容也只能向下匹配。

注意事項

  1. 使用alias,目錄名后面一定要加“/”
  2. alias只能在location中使用

補充:root&alias文件路徑配置

root/alias 是指定文件路徑的兩種方式,主要區別就是怎么解析location后面的uri。 eg: 訪問:http://localhost/appImg/abc.jpg

  • root:
location ^~ /appImg/{ root /home/nginx; }

這個location相當於訪問服務器上的文件路徑: /home/nginx/appImg/abc.jpg 。

  • alias:
location ^~ /appImg/{ alias /home/nginx/; }

這個location相當於訪問服務器上的文件目錄:/home/nginx/abc.jpg(即alias不會使用location后面配置的路徑)。而且如果alias 指定的是目錄,后面一定要加上 "/"。。。

(adsbygoogle = window.adsbygoogle || []).push({});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM