root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
alias是一个目录别名的定义(仅能用于location上下文),root则是最上层目录的定义。
直接通过例子来理解:
1 2 3 |
location ^~ /123/abc/ { root /data/www; } |
当请求https://blog.whsir.com/123/abc/logo.png时,将会返回服务器上的/data/www/123/abc/logo.png文件,即/data/www+/123/abc/
1 2 3 |
location ^~ /123/abc/ { alias /data/www; } |
当请求https://blog.whsir.com/123/abc/logo.png时,将会返回服务器上的/data/www/logo.png文件,即/data/www
参考:
http://nginx.org/en/docs/http/ngx_http_core_module.html#root
http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
原文链接:nginx配置中alias和root区别,转载请注明来源!