使用Varnish背后的AWS ELB - 是否可能?

use*_*119 14 varnish amazon-web-services amazon-elb

我试图在一些Varnish服务器后面放置一组EC2实例.我们的Varnish配置很少变化(一年一次或两次)但我们总是出于各种原因(更新,问题,负载峰值)添加/删除/替换Web后端.这会产生问题,因为我们总是需要更新我们的Varnish配置,这会导致错误和心碎.

我想要做的是简单地通过在Elastic Load Balancer中添加或删除它们来管理后端服务器集.我已经尝试将ELB端点指定为后端,但是我收到此错误:

Message from VCC-compiler:
Backend host "XXXXXXXXXXX-123456789.us-east-1.elb.amazonaws.com": resolves to multiple IPv4 addresses.
Only one address is allowed.
Please specify which exact address you want to use, we found these:
123.123.123.1
63.123.23.2
31.13.67.3
('input' Line 2 Pos 17)
.host = "XXXXXXXXXXX-123456789.us-east-1.elb.amazonaws.com";
Run Code Online (Sandbox Code Playgroud)

ELB提供的唯一一致的公共接口是其DNS名称.此DNS名称解析为的IP地址集随着时间和负载而变化.

在这种情况下,我宁愿不指定一个确切的地址 - 我想在从DNS返回的任何内容之间进行循环.这可能吗?或者有人可以提出另一种可以完成同样事情的解决方案吗?

谢谢,山姆

小智 5

您可以使用NGINX Web服务器来处理CNAME解析问题:

User-> Varnish -> NGNIX -> ELB -> EC2 Instances
        (Cache Section)        (Application Section)
Run Code Online (Sandbox Code Playgroud)

您在此帖子中有一个配置示例:http://blog.domenech.org/2013/09/using-varnish-proxy-cache-with-amazon-web-services-elastic-load-balancer-elb.html

胡安


Abs*_*Abs 4

我不建议将 ELB 放在 Varnish 后面。

\n\n
\n

问题在于 Varnish 正在解析分配给 ELB 的名称,并且它会缓存 IP 地址,直到 VCL get\xe2\x80\x99 重新加载。由于 ELB 的动态特性,链接到 cname 的 IP 可能随时更改,从而导致 Varnish 将流量路由到不再链接到正确 ELB 的 IP。

\n
\n\n

这是一篇有趣的文章,您可能会喜欢阅读

\n