我知道How to use try_files with 2 or more roots中有一个建议的解决方案,但它与我要达到的目标不太吻合。
我们正在将具有100,000页的大型旧Web服务器迁移到新Web服务器。在此过程中,我们将更新内容。新内容的目录是从头开始创建的。在更新内容时,我们要确保如果新文件夹中缺少某些内容,可以从旧文件夹中检索到。
我的简化文件夹结构如下:
/mnt/oldcontent
/var/opt/data/company/newcontent
对于我们的方案,理想的解决方案是是否可以执行以下操作:
location / {
try_files /var/opt/data/company/newcontent/$uri /mnt/oldcontent/$uri ...;
}
我知道这是无效的语法。
答案 0 :(得分:1)
您的解决方案需要将root
设置为文件系统的根。
由于location
只能使用一个根,因此可以使用命名为location
的另一个根。
例如:
root /var/opt/data/company/newcontent;
location / {
try_files $uri $uri/ @oldcontent;
}
location @oldcontent {
root /mnt/oldcontent;
try_files $uri =404;
}
有关详细信息,请参见this document。