nginx配置文件 root alias的区别

root和alias是系统文件路径的设置
root用来设置根目录,alias用来重置当前文件的目录

alias

1
2
3
location /img/ {
alias /var/www/image/;
}

访问/img/目录里面的文件时,nginx会自动去/var/www/image/目录找文件

root

1
2
3
location /img/ {
root /var/www/image;
}

访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件

关于$document_root

$document_root 是指当前面{}组中的root选项对应的值变量
如果当前{}中没有,就会使用server{}中的root选项

案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
location ~ ^/test/.+\.php$ {
alias /var/www/html/test/;

# 做了一个重写方式,将php后缀名隐藏
# 比如 /test/1.php 重写成了 /test/1

rewrite /test/(.*\.php?) /$1 break;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;

# 指定php-fpm读取的文件路径
fastcgi_param SCRIPT_FILENAME /var/www/html/test$fastcgi_script_name;
include fastcgi_params;
}

location ~ ^/test($|/.*) {
alias /var/www/html/test/$1;
index index.php index.html index.htm;
}