ALB与NLB集成配置疑问:如何对接8081/8082端口的EC2实例
解决方案:ALB+NLB集成对接多端口EC2实例
一、先正确配置ALB对接EC2实例
ALB的监听端口确实仅支持80(HTTP)和443(HTTPS),但这和目标组指向EC2的8081/8082端口不冲突,配置步骤如下:
- 创建两个独立的目标组:
- 目标组1:协议选择
HTTP,目标端口填写8081,关联启用8081端口的EC2实例 - 目标组2:协议选择
HTTP,目标端口填写8082,关联启用8082端口的EC2实例
- 目标组1:协议选择
- 配置ALB的监听规则:
- 给ALB创建80端口的HTTP监听,然后添加路由规则:
- 按路径匹配:访问
http://<ALB-DNS>/app1/*时,转发到目标组1(对应8081的EC2) - 按主机头匹配:访问
app1.yourdomain.com时,转发到目标组1 - 同理配置对应规则转发到目标组2(8082的EC2)
- 按路径匹配:访问
- 给ALB创建80端口的HTTP监听,然后添加路由规则:
二、集成NLB与ALB
NLB作为四层负载均衡,可将流量转发到ALB,实现两层负载均衡的集成:
- 创建NLB的目标组:协议选择
TCP,目标端口设置为ALB的监听端口(比如80),然后将ALB的网络接口(ENI)添加为目标(或直接选择ALB作为目标资源) - 配置NLB的监听:
- 可根据需求设置监听端口(比如80、8081、8082都支持),将流量转发到上述指向ALB的目标组
- 例如:NLB监听80端口,转发到ALB的80端口;或者NLB分别监听8081、8082端口,都转发到ALB的80端口,再由ALB的规则分发到对应EC2
三、替代方案:直接用NLB对接EC2(无需ALB)
如果你的场景不需要ALB的HTTP层特性(如路径路由、会话保持、HTTP头部处理),可以直接跳过ALB,用NLB直接对接EC2:
- 创建两个NLB目标组:
- 目标组A:TCP协议,端口8081,关联对应EC2
- 目标组B:TCP协议,端口8082,关联对应EC2
- 配置NLB的两个监听:
- 监听8081端口,转发到目标组A
- 监听8082端口,转发到目标组B
这样即可通过NLB的对应端口直接访问不同EC2实例
关键配置检查
- ALB安全组:需允许NLB的IP段(或按需开放)访问80/443端口
- EC2安全组:需允许ALB的安全组访问8081/8082端口
- 若NLB和ALB不在同一VPC,需确保VPC已对等连接,路由表配置正确
内容的提问来源于stack exchange,提问作者Ajay Kumar
相关产品推荐
相关产品推荐

