如何确保两个 Nginx 边缘之间的缓存一致性

如何确保两个 Nginx 边缘之间的缓存一致性

我有一个网站,其中近 99% 的内容来自 Nginx 缓存(也是 Web 服务器)。为了让您了解缓存机制有多么简单,这是我的缓存键

proxy_cache_key "$scheme://$host$uri"; 

我正在使用 Cloudflare 负载平衡实现故障转移 Web 服务器/缓存。在原始 Web 服务器前面还有一台 Web 服务器。如果缓存未命中或绕过,请求将从缓存 Web 服务器发送到原始服务器并刷新两台机器。为了预热冗余缓存机器,我复制/rsync 缓存文件(一次)。

棘手的部分在于:Cloudflare 负载均衡器采用循环方式,并且具有地理亲和性。这意味着,如果请求直接到达源站,并且未命中,则不会复制缓存。

我想到跑步齐奏在 cron 上,但这看起来很简单。

我可以遵循什么正确的方法?

答案1

为什么不使用lsyncd?如果文件同步是唯一关心的问题?这是一个相当简单且可持续的工具

相关内容