nginx root与alias

root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径,但又有区别:
采用如下设置

location /static/ {
    root /data/w3;
}

实际访问http://domain.com/static/fac.ico时,
在服务器正真对应的资源地址为/data/w3/static/fac.ico,此处真实路径是root指定的值加上location指定的值。

而采用alias(别名)不管location的值怎么写,资源的真实路径都是 alias 指定的路径

location /static/ {
    alias /data/w3/;
}

实际访问http://domain.com/static/fac.ico时,
在服务器正真对应的资源地址为/data/w3/fac.ico.

其他区别

  1. alias 只能作用在location中,而root可以存在server、http和location中。
  2. alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 ”/” 可有可无。
原文地址:https://www.cnblogs.com/zenan/p/10861722.html