要同时支持HTTPS和HTTP的AWS Application Load Balancer(ALB)监听器,您可以使用以下解决方法:
import boto3
elbv2_client = boto3.client('elbv2')
response = elbv2_client.create_listener(
LoadBalancerArn='your_load_balancer_arn',
Protocol='HTTP',
Port=80,
DefaultActions=[
{
'Type': 'forward',
'TargetGroupArn': 'your_target_group_arn'
},
],
)
response = elbv2_client.create_listener(
LoadBalancerArn='your_load_balancer_arn',
Protocol='HTTPS',
Port=443,
Certificates=[
{
'CertificateArn': 'your_certificate_arn'
},
],
DefaultActions=[
{
'Type': 'forward',
'TargetGroupArn': 'your_target_group_arn'
},
],
SslPolicy='your_ssl_policy',
AlpnPolicy='http1.1',
Certificates=[
{
'CertificateArn': 'your_certificate_arn'
},
],
DefaultActions=[
{
'Type': 'forward',
'TargetGroupArn': 'your_target_group_arn'
},
],
)
请确保将your_load_balancer_arn
替换为您的ALB的ARN,your_target_group_arn
替换为您的目标组的ARN,your_certificate_arn
替换为您的SSL证书的ARN,并选择适合您的应用程序的适当SSL策略。
这样,您的ALB监听器将同时支持HTTP和HTTPS流量。HTTP流量将通过80端口进行监听,而HTTPS流量将通过443端口进行监听。
下一篇:AWS ALB截断HTTP响应