root
和alias
的主要区别是:
- 使用
root
,实际的路径就是:root值 + location值。 - 使用
alias
,实际的路径就是:alias值。
例如,
有一张图片,URL是:garymeng.com/static/a.jpg
它在服务器的路径是:/var/www/app/static/a.jpg
那么用root
的配置是:
location /static/ { root /var/www/app/; }
用alias
的配置就是:
location /static/ { alias /var/www/app/static/; }
对于alias
,location值可以随便取,例如:
location /hello/ { alias /var/www/app/static/; }
这样,我们访问图片的地址就是:garymeng.com/hello/a.jpg
注意:
- 很多文章说:
alias 后面必须要用 “/” 结束,是错误的,亲测加不加/
效果是一样的。 alias
在使用正则匹配时,必须捕捉要匹配的内容,并在指定的内容处使用。alias
只能位于location
块中,root
可以不放在location
中。