相同点:
- 两者都可以用于确定请求的文件的物理位置,并将其发送给客户端。
- root和alias都可以在location块内使用。
不同点:
nginx在处理物理路径时的规则不一样。
- root指令定义了一个根目录,它将请求的URI附加到该路径来确定最终的文件路径。
[复制到剪贴板]
location /images/ {
root /var/www/;
}
当访问/images/logo.jpg时,Nginx 会实际读取文件 /var/www/images/logo.jpg 。
这种方式适合 URI中的目录名称和物理文件夹名称一致的情况。
- alias指令也指定了文件的物理路径,它实际上是一个相对路径。location部分的URI会替换为alias中的路径名。
[复制到剪贴板]
location /images/ {
alias /var/www/;
}
当访问/images/logo.jpg时,Nginx 会实际读取文件 /var/www/logo.jpg 。
这种方式比较适合 URI的目录名和物理文件夹不一致的情况。
URI路径和物理路径不一致的情况root和alias都是可以实现设置的。
相对来说alias设置简单一些
之前的文章在CodeIgniter4中实现文件下载,以及nginx实现上传文件夹名的重写 提到的重写文件夹名称是使用root方式设置,如果改为alias会简单一些。