Nginx中root和alias的区别

root和alias都是Nginx用来指定文件路径的方式,主要区别在于如何解释location后面的uri,这会使两者以不同的方式将请求映射到服务器文件上。

root配置

root的配置说明参考:root官方文档

从上可以看出,root的映射方式是:${root配置的路径} + ${location路径}
例如:

1
2
3
location /i/ {
root /data/w3;
}

上面的配置会将请求/i/top.gif映射到/data/w3/i/top.gif文件。

注意:因为root配置是将location路径加在root指向的path之后,所以如果uri发生了改变,则无法找到对应的文件了。这种情况下,应该使用alias的配置方式。

alias配置

root的配置说明参考:alias官方文档

从上可以看出,alias的映射方式是:${alias配置的路径} 替换了 ${location路径}
例如:

1
2
3
location /i/ {
alias /data/w3/images/;
}

上面的配置会将请求/i/top.gif映射到/data/w3/images/top.gif文件。

------ 本文完 ------