详解nginx的root与alias
时间: 2024-05-25 20:16:04 浏览: 174
在nginx中,root和alias都用于指定静态文件的根目录,但它们的用法和效果略有不同。
1. root
在nginx配置文件中,root指令用于指定静态文件的根目录。例如:
```
server {
listen 80;
server_name example.com;
root /var/www/example.com;
}
```
这里的root指定了example.com域名下静态文件的根目录为/var/www/example.com。当用户访问http://example.com时,nginx会在/var/www/example.com目录中寻找相应的静态文件,如index.html。
需要注意的是,root指令所指定的路径是相对于nginx配置文件的路径。因此,如果nginx配置文件位于/etc/nginx目录下,而静态文件的根目录位于/var/www/example.com目录下,则root指令应写成:
```
root /../../var/www/example.com;
```
其中的”../”表示向上一级目录。
2. alias
alias指令也用于指定静态文件的根目录,但它的用法和效果略有不同。alias指令可以将请求的URL路径映射到服务器上的实际文件路径。例如:
```
server {
listen 80;
server_name example.com;
location /img/ {
alias /var/www/example.com/static/img/;
}
}
```
这里的alias指定了URL路径/img/映射到/var/www/example.com/static/img/目录下的静态文件。当用户访问http://example.com/img/logo.png时,nginx会在/var/www/example.com/static/img/目录下寻找相应的静态文件,如logo.png。
需要注意的是,alias指令所指定的路径是绝对路径。因此,如果alias指令所指定的路径是/var/www/example.com/static/img/,则在nginx配置文件中应写成:
```
alias /var/www/example.com/static/img/;
```
而不是:
```
alias ../../var/www/example.com/static/img/;
```
因为alias指令不会将路径解析为相对路径。
阅读全文