AWS ELB 作为 Varnish Accelerator 的后端

add*_*onj 8 varnish amazon-web-services amazon-elb

我正在 AWS 上进行大型部署,该部署具有很高的正常运行时间要求和全天可变负载。显然,这是 ELB(弹性负载均衡器)和自动缩放的完美用例。

但是,我们也依赖 varnish 来缓存 API 调用。我最初的本能是构建堆栈,以便 varnish 使用 ELB 作为后端,进而访问 appGroup。

Varnish -> ELB -> AppServers

但是,根据一个 几个 来源是不可能的,因为ELB不断改变它的DNS主机名,其中在启动清漆缓存,这意味着更改IP不会被清漆拾起的IP地址。

然而,四处阅读,看起来人们正在这样做,所以我想知道存在哪些解决方法?也许是定期重新加载 vcl 的脚本?

在这真的不是一个好主意的情况下,是否有其他解决方案的想法?

小智 2

Varnish 实际上可以用作负载均衡器。你应该试试Varnish -> AppServers

只需在 Varnish 配置中将每个应用程序服务器定义为导向器中的后端即可。

您甚至可以添加探测器来检查后端可用性,在请求过程中失败时重试切换到另一台服务器等。

您的 Varnish 实例托管在哪里?反潜战也有吗?您可以尝试 Varnish 哈希管理器并将 Varnish 托管在与应用程序相同的服务器上。每个实例都会处理它应该处理的请求,并将其他实例转发到正确的后端。每个唯一的 URL 将仅缓存在 1 个(可用)服务器上,并且您的缓存内存将乘以 Varnish 实例的数量,同时缓存未命中将受到限制。