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会把指定路径拼接到文件路径后,再进行访问。

参考

lkning