我们有 5 个不同的服务器位置,每个位置包含大约 30 个服务器,每个服务器代表一个 URL,同时提供 HTTP 和 HTTPS。它们都是相同的,但是根据他们选择查看内容的位置提供不同的内容,他们可以通过更改用户设置来选择区域内容,并且我们将它们绑定到 DNS 中的绑定视图。
我们有一个 DNS 服务器,可以根据位置将名称解析为 IP 地址,并将流量发送给它们。它工作得很好,但是当有人更改区域时,用户/浏览器/操作系统/等之间会缓存一些东西,主要是 DNS 的东西。
我们想做的是为每个域名使用所有相同的 IP 地址,并将所有内容解析为一组 HAProxy 服务器,这些服务器将根据其 ip 和用户配置在内部代理/路由流量。这样,DNS 将始终将它们指向相同的前端服务器,并允许它们的 DNS 缓存所有内容。
我想我可以用 HAProxy 做到这一点,所以当客户端连接到 blog.test.com 时,它会在前端服务器内创建一个代理来表示我们的南非站点 blog.test.com - 但是,它需要这样做按IP地址,否则DNS会混淆..
我可以设置 HAProxy 以接受 blog.test.com 的连接并在内部连接到 1.2.3.4 并传递站点名称/别名等任何标题吗?
此
haproxy
配置会将连接路由到您的站点,不受干扰。您在不同的后端定义每个位置的每个服务器,例如
site1_india
,每个服务器都有一个 SSL 变体以使用端口 443。mode http
会工作,但我不知道它会如何帮助你。您必须解密所有 SSL,并重新加密以安全转发到相应站点。另请注意,通过这种设计,对于拓扑上远离
haproxy
实例的客户端来说,延迟将是令人望而却步的,因为它们的包可能会往返代理,然后返回到本地应用服务器(可能靠近客户端) )。您可以通过向
haproxy
每个位置添加一个实例来抵消这一点,以便客户端通常使用本地代理(除了它们重新定位并依赖缓存的 DNS)。