root和alias都是Nginx用来指定文件路径的方式,主要区别在于如何解释location后面的uri,这会使两者以不同的方式将请求映射到服务器文件上。
root配置
root的配置说明参考:root官方文档
从上可以看出,root的映射方式是:${root配置的路径} + ${location路径}。
例如:1
2
3location /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
3location /i/ {
alias /data/w3/images/;
}
上面的配置会将请求/i/top.gif
映射到/data/w3/images/top.gif
文件。