带有负载均衡器的 Varnish

带有负载均衡器的 Varnish

Varnish 因各种原因而受到赞誉。因此,我尝试在负载均衡器前面设置 Varnish,现在我可以设置 Varnish 本身,它可以处理所有传入流量,并向 Web 服务器发送所需的流量,具有出色的缓存量、限制流量和一套出色的 vcl 配置,能够根据 IP、位置、用户代理等过滤流量。

但是,我并不相信将 VARNISH IP 指向给定域的 A 记录的逻辑(因为我有大约 15 个域)。

有人可以帮我一下吗,请告诉我如何配置 varnish,以便我仍然可以将负载均衡器 IP 指向为 A 记录。

换句话说,我如何设置 varnish 来提供缓存对象而不是作为 DNS 入口点。

总而言之,我希望使用 varnish 来提供静态内容和其他可缓存的对象(数量非常多,还有一些 json 对象,在我的测试环境中表现非常出色)。

[注意:我没有将 varnish 配置为负载均衡器]

答案1

假设您的负载均衡器和 Varnish 缓存 IP 地址均可供客户端使用,您可以做的是为每个主域分支一个新的子域,专门用于缓存资产(例如assets.domain.com)。

您将继续指向domain.com负载www.domain.com均衡器(如当前配置)。然后单独创建assets子域并配置它们以使用 Varnish 缓存。您可能希望将 Varnish 配置为仅缓存某些文件夹或某些类型的对象。

在手动测试assets.domain.com返回您想要的对象之后,您将使用assets.domain.comdomain.com不是www.domain.com最终客户端开始使用缓存来替换指向您的资产的链接。

答案2

解决这个架构问题的一个思路就是回到你在 Varnish 前面需要什么。

99% 的时间里,你需要在 Varnish 前面添加一个负载平衡层,因为 Varnish 不支持开箱即用的 SSL。如果你需要 HA,那么你还需要在 Varnish 前面添加一些东西

解决“Something infront”的一般方法是使用 nginx 层。Varnish 设置指南在这里: https://www.section.io/varnish-install-quick-and-detailed/

尽管这也可能是 AWS ELB 或任何其他负载均衡器。

为了获得更详细的说明,我们需要了解您的应用要求。

相关内容