AWS ALB侦听器-https和http

时间:2020-05-11 11:42:50

标签: amazon-web-services aws-load-balancer

我在https / 443上有一个带有侦听器的ALB,它将请求转发到附加到Fargate服务的目标组。

此ALB向Internet开放,并且是具有内部域(xxx.local)的具有某些其他内部服务的特殊VPC的一部分。

我想用xxx.local从VPC内部调用alb,但是我想允许它是http / 8000请求。

当我在http / 8000上添加另一个侦听器时,该侦听器将请求转发到相同的目标组-它不起作用。如果我将转发规则替换为重定向到https / 443的重定向规则,它仍然不起作用。

任何帮助将不胜感激!

已编辑:在下面添加了图片-两个收听者都转发到同一组

enter image description here

我已经用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'


1 个答案:

答案 0 :(得分:1)

创建第二个目标组并编辑8000侦听器以使用该目标组。在向导期间,它将仅创建1个目标组

相关问题