Nginx 使用具有不同文档根的try\u文件
我知道在中有一个建议的解决方案,但它并不完全符合我试图实现的目标 我们正在将一个拥有100000页的大型旧Web服务器迁移到一个新的Web服务器。在此过程中,我们将更新内容。新内容的目录是从头创建的。在更新内容时,我们希望确保如果新文件夹中缺少某些内容,可以从旧文件夹中检索 我的简化文件夹结构如下所示:Nginx 使用具有不同文档根的try\u文件,nginx,nginx-location,Nginx,Nginx Location,我知道在中有一个建议的解决方案,但它并不完全符合我试图实现的目标 我们正在将一个拥有100000页的大型旧Web服务器迁移到一个新的Web服务器。在此过程中,我们将更新内容。新内容的目录是从头创建的。在更新内容时,我们希望确保如果新文件夹中缺少某些内容,可以从旧文件夹中检索 我的简化文件夹结构如下所示: /mnt/oldcontent /var/opt/data/company/newcontent location / { try_files /var/opt/data/company/
/mnt/oldcontent
/var/opt/data/company/newcontent
location / {
try_files /var/opt/data/company/newcontent/$uri /mnt/oldcontent/$uri ...;
}
对于我们的场景,理想的解决方案是,如果我们可以这样做:
/mnt/oldcontent
/var/opt/data/company/newcontent
location / {
try_files /var/opt/data/company/newcontent/$uri /mnt/oldcontent/$uri ...;
}
我知道这是无效语法。您的解决方案需要将
根设置为文件系统的根
由于位置
只能服务于一个根,因此可以使用命名的位置
来尝试另一个
例如:
root /var/opt/data/company/newcontent;
location / {
try_files $uri $uri/ @oldcontent;
}
location @oldcontent {
root /mnt/oldcontent;
try_files $uri =404;
}
有关详细信息,请参阅。我想知道是否可以使用一个服务器级别根目录解决这个问题,我用一个新定义的位置级别根目录覆盖它,我在try_files
中指定了类似@oldcontentroot
的东西。非常感谢,这很有效。你告诉我我的想法(见上面的评论)并没有错;-)