我们希望在由 Auto-Scaling Group 和 ELB 处理的节点上安装 Varnish。这些服务器目前根据 2-10 个节点的负载进行扩展和收缩。由于成本原因,我们不想再安装另一个“主”Varnish 服务器。
我们的最佳图表看起来是这样的:
ELB
/ | \
Node 1 - Node 2 - Node 3, etc.
| | |
Varnish Varnish Varnish
| | |
Apache Apache Apache
| | |
Centralized MySQL/File Servers
为了进一步理解,Varnish 将在每个节点上运行,就好像这三个节点都是独立的一样。
我们如何保持所有 Varnish 同步,尤其是涉及缓存事件时(例如,有人在 WordPress 上更新了一篇文章,而 WordPress 清除了其中一个 Varnish 缓存,但没有清除其他两个缓存)。我宁愿不添加另一个专用的 Varnish 服务器来监督所有这些。您通常如何处理 3 个 Varnish 实例之间的同步?是不是我考虑得不正确,或者有其他配置?
答案1
通常我们有一些单独的管理服务器,运行着 wordpress 或 magento,它们内置了特殊的 varnish 插件,它有所有的逻辑,并向清漆在每台服务器上。或者您可以从您的工作人员那里执行相同的操作,这取决于您的应用程序。
ELB
/ | \
Node 1 - Node 2 - Node 3, etc.
| | |
Varnish Varnish Varnish
| | |
Apache Apache Apache
\ | /
Master Admin Node
\ | /
Centralized MySQL/File Servers