Amazon web services 502坏网关:容器端口5000上的节点应用程序
我在aws中作为微服务托管了angular应用程序:。我收到一个502严重网关错误。下面给出了服务的yaml模板和任务定义。当我运行Amazon web services 502坏网关:容器端口5000上的节点应用程序,amazon-web-services,amazon-ecs,aws-application-load-balancer,Amazon Web Services,Amazon Ecs,Aws Application Load Balancer,我在aws中作为微服务托管了angular应用程序:。我收到一个502严重网关错误。下面给出了服务的yaml模板和任务定义。当我运行docker run-p 5000:5000时,我使用的映像在本地环境中工作 下面给出的是负载平衡器的yaml模板 Resources: LoadBalancer: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Name: !Ref EnvironmentNam
docker run-p 5000:5000时,我使用的映像在本地环境中工作
下面给出的是负载平衡器的yaml模板
Resources:
LoadBalancer:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Name: !Ref EnvironmentName
Subnets: !Ref Subnets
SecurityGroups:
- !Ref SecurityGroup
Tags:
- Key: Name
Value: !Ref EnvironmentName
LoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
LoadBalancerArn: !Ref LoadBalancer
Port: 5000
Protocol: HTTP
DefaultActions:
- Type: forward
TargetGroupArn: !Ref DefaultTargetGroup
# We define a default target group here, as this is a mandatory Parameters
# when creating an Application Load Balancer Listener. This is not used, instead
# a target group is created per-service in each service template (../services/*)
DefaultTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: !Sub ${EnvironmentName}-default
VpcId: !Ref VPC
Port: 80
Protocol: HTTP
下面给出的是云形成堆栈。
错误是我没有服务从Microservice端监听端口5000。我的错。所以,如果有人遇到同样的问题。确保你有正确的形象。还要确保已正确设置了ListenerRule
和TargetGroup
例如:-
错误是我没有一个服务从Microservice端监听端口5000。我的错。所以,如果有人遇到同样的问题。确保你有正确的形象。还要确保已正确设置了ListenerRule
和TargetGroup
例如:-
我不知道如何在容器中启动应用程序,但我建议您使用forever()来确保它不会处于非活动状态。我已经有502个错误,因为在其他系统中,有几分钟没有活动。希望这有点帮助502错误通常是由NGINX无法将请求传递到“上游”引起的,在这种情况下是您的Node.js服务器(这也是错误消息所建议的:“连接被拒绝”)。它可能正在崩溃并重新启动,因此请检查其日志文件以查看导致崩溃的原因。该服务是否通过了ECS运行状况检查(检查事件选项卡)?您是否确定负载平衡器可以连接到ECS群集/服务(安全组设置和/或网络ACL,如果已设置)?我不知道您如何在容器中启动应用程序,但我建议您使用forever()以确保它不会处于非活动状态。在其他系统中,当几分钟内没有活动时,我已经出现了502个错误。希望这有点帮助。502个错误通常是由于NGINX无法将请求传递给“在本例中是Node.js服务器(这也是错误消息所建议的:“连接被拒绝”)。它可能正在崩溃并重新启动,因此请检查其日志文件以查看导致崩溃的原因。该服务是否通过ECS运行状况检查(检查事件选项卡)?您确定负载平衡器可以连接到ECS群集/服务(安全组设置和/或网络ACL,如果已设置)?
Resources:
LoadBalancer:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Name: !Ref EnvironmentName
Subnets: !Ref Subnets
SecurityGroups:
- !Ref SecurityGroup
Tags:
- Key: Name
Value: !Ref EnvironmentName
LoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
LoadBalancerArn: !Ref LoadBalancer
Port: 5000
Protocol: HTTP
DefaultActions:
- Type: forward
TargetGroupArn: !Ref DefaultTargetGroup
# We define a default target group here, as this is a mandatory Parameters
# when creating an Application Load Balancer Listener. This is not used, instead
# a target group is created per-service in each service template (../services/*)
DefaultTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: !Sub ${EnvironmentName}-default
VpcId: !Ref VPC
Port: 80
Protocol: HTTP
TargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
VpcId: !Ref VPC
Port: 80
Protocol: HTTP
Matcher:
HttpCode: 200-299
HealthCheckIntervalSeconds: 10
HealthCheckPath: /
HealthCheckProtocol: HTTP
HealthCheckTimeoutSeconds: 5
HealthyThresholdCount: 2
ListenerRule:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
ListenerArn: !Ref Listener
Priority: 100
Conditions:
- Field: path-pattern
Values: [ "/*" ]
Actions:
- TargetGroupAr