如果AWS负载均衡器无法访问,请检查以下几个方面:
检查SG(Security Group)设置:您可以在AWS EC2控制台中找到SG设置,确保允许来自负载均衡器的流量。您应该为负载均衡器配置一个SG,并将其用于所有实例。
检查NACL(网络访问控制列表)设置:您可以在AWS VPC控制台中找到NACL设置。如果您的NACL配置不正确,则可能会阻止来自负载均衡器的流量。
检查目标组是否正确设置:目标组决定了负载均衡器的流量将转发到哪个实例。您应该确保目标组具有正确的实例。
例如,以下代码演示了如何使用AWS SDK for Python(boto3)创建一个负载均衡器,并将其用于多个实例:
import boto3
elbv2 = boto3.client('elbv2')
# 创建一个目标组
response = elbv2.create_target_group(
Name='my-targets',
Protocol='HTTP',
Port=80
)
target_group_arn = response['TargetGroups'][0]['TargetGroupArn']
# 创建一个负载均衡器
response = elbv2.create_load_balancer(
Name='my-load-balancer',
Type='application',
Subnets=['subnet-12345678', 'subnet-87654321'],
SecurityGroups=['sg-12345678'],
)
load_balancer_arn = response['LoadBalancers'][0]['LoadBalancerArn']
# 创建一个监听器
response = elbv2.create_listener(
LoadBalancerArn=load_balancer_arn,
Protocol='HTTP',
Port=80,
DefaultActions=[
{
'Type': 'forward',
'TargetGroupArn': target_group_arn
}
]
)
listener_arn = response['Listeners'][0]['ListenerArn']
# 在负载均衡器中注册目标组
response = elbv2.register_targets(
TargetGroupArn=target_group_arn,
Targets=[
{
'Id': 'i-1234567890abcdef0',
'Port': 80,
},
{
'Id': 'i-0598c7d356eba48d7',