使用 try_files 不同的文档根目录
Use try_files with different document roots
我知道 中有一个建议的解决方案,但它不太适合我尝试实现的目标。
我们正在将具有 100,000 个页面的大型旧网络服务器迁移到新的网络服务器。在此过程中,我们更新内容。新内容的目录是从头开始创建的。当我们更新内容时,我们要确保如果新文件夹中缺少某些内容,可以从旧文件夹中检索到。
我的简化文件夹结构如下所示:
/mnt/oldcontent
/var/opt/data/company/newcontent
对于我们的场景,理想的解决方案是如果我们可以这样做:
location / {
try_files /var/opt/data/company/newcontent/$uri /mnt/oldcontent/$uri ...;
}
我知道这是无效语法。
您的解决方案需要将 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。
我知道
我们正在将具有 100,000 个页面的大型旧网络服务器迁移到新的网络服务器。在此过程中,我们更新内容。新内容的目录是从头开始创建的。当我们更新内容时,我们要确保如果新文件夹中缺少某些内容,可以从旧文件夹中检索到。
我的简化文件夹结构如下所示:
/mnt/oldcontent
/var/opt/data/company/newcontent
对于我们的场景,理想的解决方案是如果我们可以这样做:
location / {
try_files /var/opt/data/company/newcontent/$uri /mnt/oldcontent/$uri ...;
}
我知道这是无效语法。
您的解决方案需要将 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。