一直以来对nginx中root、alias指令的区别没有搞清楚,今天特别查找了一些资料,同时通过实例配置nginx的方法来对比这两个指令。
一.nginx root指令
root指的是根目录,可以简单地理解为父目录。
举例:
location /a/ { ...; root /www/;...}
当我们访问xxx/a/时,就是/www/a/下的文件了,若目录b是a的子目录,我们访问xxx/a/b时,就是/www/a/b/下的文件了。
简单地理解就是root时,访问时自动带上请求中的相对目录。
二.nginx alias别名配置
location /b/ {...; alias /www/a/b/;...}
从配置上我们可以看出,alias所指定的目录是必须指定真实的目录的,同时b目录必须指定/b/,后面要带/(root可以忽略)。
总结下就是:
1. Root是Alias的父目录,Alias是子目录,且有/的强制区别;
2. Root及alias指令主要是目录对应关系同location不同;
3. Root的最后一个“/”要同location的第一个“/”对应,其他目录结构同location中剩余相同;
4. Alias的最后一个“/”要同location的最后一个“/”对应。