AWS ALB能否实现80端口同时转发至EC2的8080、8090端口?
答案
不需要替换为NLB,你当前使用的ALB完全可以满足需求。
配置说明
你当前已有的转发路径为:ALB HTTP:80 / HTTPS:443 -> EC2实例 8080端口(Tomcat Java应用)
如果要新增ALB HTTP:8090 -> EC2实例 8090端口(Nginx+Node.js应用)的转发规则,直接在现有ALB上操作即可,步骤如下:
- 新建目标组:目标类型选择实例,协议为HTTP,端口设置为
8090,选择EC2实例所属的VPC,配置好Node.js应用对应的健康检查路径后,将该EC2实例注册到这个新目标组,等待健康检查状态变为正常。 - 给ALB新增监听器:协议选HTTP,端口填
8090,默认转发动作选择刚才创建的、对应8090端口的目标组,保存配置。 - 检查安全组规则:确认ALB关联的安全组放开8090端口的入站权限,同时EC2实例关联的安全组允许ALB所属安全组访问本机8090端口即可。
补充说明
如果你是希望同一个ALB 80端口的请求按规则分流到8080和8090两个端口,ALB也原生支持:不需要新增监听器,直接编辑现有80端口监听器的规则,在默认转发到8080的规则前插入自定义规则,按主机头、路径等条件匹配需要转发到Node.js应用的请求,指向8090对应的目标组即可。
只有一种场景需要用到NLB:如果你需要把80端口收到的所有请求无差别同时双发给8080和8090两个端口(流量镜像场景),ALB不支持该能力,需要换NLB配合流量镜像功能实现。但从你给出的预期配置格式判断,你仅需要新增8090端口的访问入口,现有ALB完全可以支撑,无需替换。
内容的提问来源于stack exchange,提问作者opendev
相关产品推荐
相关产品推荐

