AWS网络负载均衡器(NLB)目前不直接支持ALPN(应用层协议协商)。但是,您可以通过在负载均衡器前面添加一个AWS Application Load Balancer(ALB)来实现支持ALPN的功能。
下面是一个使用AWS CLI创建ALB和NLB的代码示例:
aws elbv2 create-load-balancer \
--name my-alb \
--subnets subnet-12345678 subnet-87654321 \
--security-groups sg-12345678 \
--type application \
--scheme internet-facing
aws elbv2 create-target-group \
--name my-target-group \
--protocol HTTP \
--port 80 \
--vpc-id vpc-12345678
aws elbv2 create-listener \
--load-balancer-arn \
--protocol HTTP \
--port 80 \
--default-actions Type=forward,TargetGroupArn=
请将
替换为您创建的ALB的ARN,将
替换为您创建的目标组的ARN。
aws elbv2 create-load-balancer \
--name my-nlb \
--subnets subnet-12345678 subnet-87654321 \
--security-groups sg-12345678 \
--type network \
--scheme internet-facing
aws elbv2 create-target-group \
--name my-nlb-target-group \
--protocol TCP \
--port 443 \
--vpc-id vpc-12345678
aws elbv2 create-listener \
--load-balancer-arn \
--protocol TCP \
--port 443 \
--default-actions Type=forward,TargetGroupArn=
请将
替换为您创建的NLB的ARN,将
替换为您创建的目标组的ARN。
通过以上步骤,您可以将请求通过ALB进行TLS握手,然后将请求转发到NLB上进行负载均衡处理。这样可以实现支持ALPN的功能。