我们有一个 CISCO 硬件负载均衡器,后面有两个 Web 服务器。我们想强制某些 URL 仅由其中一台机器提供服务。
首先,这是负载均衡器的工作吗?或者更好的方法是创建一个子域,例如http://assets.example.com哪些内容会被自动路由至其中一台服务器?
答案1
是的,如果您愿意,您可以这样做,但是如果您确定要这样做,那么为什么不将 DNS 条目分配给特定的服务器 IP 而不是集群 VIP 呢?
答案2
无需特定型号信息,负载均衡器可以优雅地让特定服务器进入和退出服务。这是使用负载均衡器的原因之一。负载均衡器是反向代理(最简单的形式),但通常会添加其他功能(第 7 层路由、健康检查等)。使用负载均衡器让服务器退出服务通常非常简单。
答案3
这通常是反向代理如果您不使用单独的域,我不确定 CISCO 硬件平衡器是否能做到这一点。Apache 和 Nginx 可用作反向代理,并且您将拥有将匹配的内容重定向到特定服务器的正则表达式规则。
如果您要讨论的是静态内容,我建议您使用其他域名 (assets.example.com)。这正是 stackoverflow 对其静态内容所做的,使用静态网。
第二个域的一些优点:
您不需要在域中使用静态内容的 cookie,这样可以节省一些开销(Yahoo 关于此内容的简介请点击这里,谷歌简介在这里). 来自sstatic.net:
如果您的域名是 www.example.org,您可以在 static.example.org 上托管您的静态组件。但是,如果您已经在顶级域名 example.org 上设置了 cookie,而不是 www.example.org,那么对 static.example.org 的所有请求都将包含这些 cookie。在这种情况下,您可以购买一个全新的域名,在那里托管您的静态组件,并让此域名不包含 cookie。Yahoo! 使用 yimg.com,YouTube 使用 ytimg.com,Amazon 使用 images-amazon.com 等等。
我还认为,如果你为第二个域进行架构设计,如果你决定迁移到内容分发网络 (CDN)一切都将准备就绪。对我来说,第二个领域感觉更加模块化,而模块化通常是一件好事。