多台服务器之间共享的Nginx缓存

多台服务器之间共享的Nginx缓存

我们有 8 个 REST-ish API 服务器,Nginx 使用 FastCGI 和 PHP-FPM 来处理请求。我们目前使用 Nginx 的 FastCGI 缓存(类似 的指令fastcgi_cache_path)。这意味着 API 响应会被缓存,但每个服务器都有单独的缓存。

是否有一个好的方法可以让所有八台服务器共享缓存存储?

我们考虑过使用 Redis 作为共享存储,但可用的模块似乎需要更改应用程序。在某些情况下,我们可能希望缓存我们无法控制的响应(通过 HTTP 到外部 API)。理想情况下,应该有一个可以替代 Nginx 内置的 FastCGI 和 HTTP 响应缓存的替代品。

答案1

似乎有一篇相当新的博客文章https://www.nginx.com/blog/shared-caches-nginx-plus-cache-clusters-part-1/ 关于这个问题。如果您运行两个以上的 nginx 缓存服务器,则第一个示例可能会很有用。

特别是这篇文章的第二部分对于我当前的用例来说听起来很有趣,我想自动将更改的项目重新爬取到我的缓存中。

它也应该适用于开源版本的 NGINX。基本上,它通过代理级联通过每个 NGINX 服务器(Nginx-Cache1->NGinx-Cache2->Origin-Server)的请求来工作,每个服务器从相关的上游缓存,如果需要,也可以创建一个 HA 集群。 https://www.nginx.com/blog/shared-caches-nginx-plus-cache-clusters-part-2/

相关内容