我在https / 443上有一个带有侦听器的ALB,它将请求转发到附加到Fargate服务的目标组。
此ALB向Internet开放,并且是具有内部域(xxx.local)的具有某些其他内部服务的特殊VPC的一部分。
我想用xxx.local从VPC内部调用alb,但是我想允许它是http / 8000请求。
当我在http / 8000上添加另一个侦听器时,该侦听器将请求转发到相同的目标组-它不起作用。如果我将转发规则替换为重定向到https / 443的重定向规则,它仍然不起作用。
任何帮助将不胜感激!
已编辑:在下面添加了图片-两个收听者都转发到同一组
我已经用cloudformation堆栈创建了所有资源,这是相关的部分。我将其更改为2 TG,但仍然只有443可以工作... 这里是堆栈的相关代码:
TargetGroup1:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: TargetGroup1
Protocol: HTTP
Port: 8000
TargetType: ip
...
TargetGroup2:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: TargetGroup2
Protocol: HTTP
Port: 8000
TargetType: ip
...
Listener443:
Type: AWS::ElasticLoadBalancingV2::Listener
DependsOn:
...
Properties:
Certificates:
...
DefaultActions:
- TargetGroupArn: !Ref 'TargetGroup1'
Type: 'forward'
LoadBalancerArn: !Ref 'TheAlb'
Port: 443
Protocol: HTTPS
SslPolicy: ELBSecurityPolicy-2016-08
Listener8000:
Type: AWS::ElasticLoadBalancingV2::Listener
DependsOn:
...
Properties:
DefaultActions:
- TargetGroupArn: !Ref 'TargetGroup2'
Type: 'forward'
LoadBalancerArn: !Ref 'TheAlb'
Port: 8000
Protocol: HTTP
FargateService:
Type: AWS::ECS::Service
DependsOn:
...
Properties:
...
LoadBalancers:
- ContainerName: ContainerName
ContainerPort: ContainerPort
TargetGroupArn: !Sub
- "arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:${tgFullName}"
- tgFullName: !GetAtt 'TargetGroup1.TargetGroupFullName'
- ContainerName: ContainerName
ContainerPort: ContainerPort
TargetGroupArn: !Sub
- "arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:${tgFullName}"
- tgFullName: !GetAtt 'TargetGroup2.TargetGroupFullName'
答案 0 :(得分:1)
创建第二个目标组并编辑8000侦听器以使用该目标组。在向导期间,它将仅创建1个目标组