单个ELB可以服务多个域吗?它可以服务多个子域吗?

che*_*hen 4 amazon-ec2 amazon-elb

我想知道 ELB 是否可以根据域名将 http 请求路由到不同的 ASG(或者不同的实例,如果后端是基于单个实例而不是基于 ASG)。

  • 假设我是拥有两个域的公司,这两个域提供不同的服务。我可以将单个 ELB 放在两个不同的逻辑服务 ASG 前面吗?(我的想法请看下图) 在此输入图像描述

  • (如果上述问题的答案是“否”,请您解释一下为什么这可以一起回答下一个问题?)然后我有一个类似的问题,ELB 可以服务来自不同 ASG 的不同子域吗(参见下图) ?

在此输入图像描述

mic*_*zer 5

不会。ELB在与其关联的实例之间均匀分配流量。多个 AutoScaling 组确实可以与单个 ELB 关联,但是不可能根据任何因素影响负载平衡算法。

就您而言,您需要 2 个 ELB。

一种可能的解决方法:如果 ELB 后面的所有实例都具有 Apache,并在其上运行虚拟主机,则您可以使用单个 ELB 为不同的域或子域提供服务。但是,您的每个实例都是相同的 - 您不会有一些实例用于域 1,一些实例用于域 2。

这个故事的寓意是,当使用 ELB 时,ELB 背后的所有实例都需要是无状态的并做同样的事情。而且,您无法影响 ELB 将流量分配到其后面的节点的方式。

阅读该文档会对您有所帮助。

  • 当侦听器处于 HTTP 模式时,ELB 绝对能够感知第 7 层,但它不是第 7 层路由器。它的设计假设其背后的所有实例都拥有所有资源,并且只负责平衡请求、维护空闲客户端的 keepalive 以及重用后端连接,除非您配置会话亲和性(“粘性”),在这种情况下,它还可以理解并可能操纵 cookie...但是没有像 HAProxy、Varnish、Nginx 等中那样的主机标头或路径匹配,所有这些都可以位于 ELB 后面并做出这些路由决策。 (2认同)