![Nginx Try_Files 创建本地内容缓存吗?](https://linux22.com/image/679513/Nginx%20Try_Files%20%E5%88%9B%E5%BB%BA%E6%9C%AC%E5%9C%B0%E5%86%85%E5%AE%B9%E7%BC%93%E5%AD%98%E5%90%97%EF%BC%9F.png)
我正在尝试在本地提供图像,或者从共享提供图像(在本地隔夜刷新)。
我的 nginx 站点在 2 个或更多服务器上提供服务,为了使所有内容在每台服务器上保持同步,我将其存储在 Azure 文件共享中,这就是位置根目录(/mnt/wp)。
这种方法效果很好(与 Nginx Caching 配合使用),但图像的等待时间非常长,我认为这是客户端-服务器-Azure 之间的延迟问题。因此,为了加快速度,我想在本地(/var/www/)提供图像(如果可用),然后再返回到 Azure(/mnt/wp)
到目前为止我已经得到了这个位置块,但是日志显示了重定向循环..
我是否遗漏了什么?
location /wp-content/ {
add_header X-uploads $uri;
try_files @contentCache/$uri $uri;
}
location @contentCache{
root /var/www;
}
答案1
您的语法try_files
错误。命名位置应该是放置在最后一个元素中的默认操作。如下所示:
location /wp-content/ {
...
try_files $uri @contentCache;
}
location @contentCache {
...
try_files $uri =404;
}
看这个文件了解更多信息。
如果需要反转顺序,只需交换root
指令即可。