因项目需求
需在nginx下发布不同目录下的服务
例如: 需发布在/mnt/1下的目录与/mnt/2下的目录,
/mnt/1 对应的默认URL为所有 /;
/mnt/2 对应的URL为 /a/b;
有以下请求 对应发布的目录
/a/c/p.xml /mnt/1/a/c/p.xml
/p.xml /mnt/1/p.xml
/a/c/b/p.xml /mnt/1/a/c/b/p.xml
/a/b/p.xml /mnt/2/a/b/p.xml
/a/b/f/p.xml /mnt/2/a/b/f/p.xml
则配置文件必须这样配置
location /
{
root /mnt/1;
}
location /a/b
{
root /mnt/2;
}
注意:从上面的配置中可以发现,如果/mnt/2下没有a目录,只有f目录,则不能成功匹配,此时,可采用虚拟路径配置
例如 , 有以下请求 对应发布的目录
/a/b/p.xml /mnt/2/p.xml
/a/b/f/p.xml /mnt/2/f/p.xml
则配置文件可以这样配置
location /a/b/
{
alias /mnt/2/;
}
使用alias时目录名后面一定要加“/”,虚拟目录比真实目录优先级要高。