距离上一次更新该文章已经过了 743 天,文章所描述的內容可能已经发生变化,请留意。

root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

alias是一个目录别名的定义(仅能用于location上下文),root则是最上层目录的定义。

直接通过例子来理解:

root

nginx
1
2
3
location ^~ /123/abc/ {
root /data/www;
}

当请求http://blog.whsir.com/123/abc/logo.png时,将会返回服务器上的/data/www/123/abc/logo.png文件,即/data/www/123/abc/

alias

nginx
1
2
3
location ^~ /123/abc/ {
alias /data/www;
}

当请求http://blog.whsir.com/123/abc/logo.png时,将会返回服务器上的/data/www/logo.png文件,即/data/www