Nginx通过指定url访问不同路径文件

🍊场景
已经有一个静态项目运行,url为www.example.com
,存放于/data/www
。现需要将存放于/data/xxxxx
的另一个静态项目运行,且指定url为www.example.com/xxxxx/index.html
。
🍅实现
方案一:root
在nginx配置文件中,server中的末尾加入
server {
#此处省略若干行
location /xxxxx/ {
root /data;#注意此处差异
index index.html;
}
}
此时访问www.example.com/xxxxx/index.html
,对应访问服务器上的文件/data/xxxxx
方案二:alias
在nginx配置文件中,server中的末尾加入
server {
#此处省略若干行
location /xxxxx/ {
alias /data/xxxxx/;#注意此处差异,这里结尾必须加`/`
index index.html;
}
}
此时访问www.example.com/xxxxx/index.html
,对应访问服务器上的文件/data/xxxxx
🌽区别
它们对路径的解析方式不同,alias会把指定路径当作文件路径,而root会把指定路径拼接到文件路径后,再进行访问。