本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用多个 Elastic Load Balancing 侦听器
您可以在 ECS 托管式 Docker 环境中配置多个 Elastic Load Balancing 侦听器,以支持不在默认 HTTP 端口上运行的代理或其他服务的入站流量。
在您的源包中创建一个 .ebextensions
文件夹并添加一个文件扩展名为 .config
的文件。以下示例显示了用于在端口 8080 上创建 Elastic Load Balancing 侦听器的配置文件。
.ebextensions/elb-listener.config
option_settings:
aws:elb:listener:8080:
ListenerProtocol: HTTP
InstanceProtocol: HTTP
InstancePort: 8080
如果您的环境在您创建的自定义 Amazon Virtual Private Cloud (Amazon VPC) 中运行,则 Elastic Beanstalk 会处理其余任务。在默认 VPC 中,您需要配置实例的安全组以允许来自负载均衡器的入口流量。添加将入口流量规则添加到安全组的第二个配置文件:
.ebextensions/elb-ingress.config
Resources:
port8080SecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 8080
FromPort: 8080
SourceSecurityGroupName: { "Fn::GetAtt": ["AWSEBLoadBalancer", "SourceSecurityGroup.GroupName"] }
有关配置文件格式的更多信息,请参阅添加和自定义 Elastic Beanstalk 环境资源和选项设置。
除了将侦听器添加到 Elastic Load Balancing 配置并在安全组中打开端口外,您还需要将主机实例上的端口映射到 Dockerrun.aws.json
v2 文件 containerDefinitions
部分的 Docker 容器上的端口。以下摘录显示了一个示例:
"portMappings": [
{
"hostPort": 8080,
"containerPort": 8080
}
]
有关 Dockerrun.aws.json
v2 文件格式的详细信息,请参阅 Dockerrun.aws.json v2。