用于不同实例和相同端口的 aws 负载均衡器

aws load balancer for different instances and same ports

我在端口 80 上有两个 EC2 实例 运行 网站。

这两个 instance/services 是否可以 use/configure 1 个负载平衡器? 当我尝试在现有负载均衡器上添加侦听器时,它显示 "You may not have duplicate load balancer ports defined".

或者我应该使用 2 个负载均衡器,每个实例一个?

负载均衡器通过它们侦听的传入流量端口定义 侦听器。当客户端连接在某个端口(即 443 或 80)上命中负载均衡器时,listener 将该请求转发给 target group.要让端口 80 上的侦听器将连接转发到多个实例,您需要做的就是创建一个包含这些实例的目标组。

面向 public 的网站最常用的方法是使用 Amazon Certificate Manager 之类的东西为网站创建 TLS 证书。然后他们将该证书加载到他们的负载均衡器中并监听端口 443(HTTPS 的典型端口)并通过 HTTP(通常是端口 80)将连接传递到目标组。这通常称为 TLS 或 SSL 终止。


如果实例托管不同的 网站,但您想根据提交的主机名(即example.com 和example1.com)进行路由,那么您可以创建每个网站的单独目标组,并使用应用程序负载均衡器 (ALB) 根据请求者提供的主机名进行路由。

这可以在创建 ALB 后完成,方法是转到 ALB 子控制台并修改类似于下面屏幕截图的侦听器规则。

要为每个主机提供单独的证书,您还需要将这些证书添加到侦听器,正如我在 blog post 概述该功能时所写的那样。