Amazon web services AWS ECS:不健康的容器

Amazon web services AWS ECS:不健康的容器,amazon-web-services,https,amazon-ecs,Amazon Web Services,Https,Amazon Ecs,在我的账户中, 我有以下设置: 具有2个服务的1x ECS群集(service-a和service-b) 每项服务都有自己的目标群体 service-a绑定443上的端口 service-b绑定8888上的端口(我需要这样做,因为443可能已经由service-a分配) 这两个服务都可以通过HTTPS协议访问 1x ALB,将在两种服务中使用,以实现负载平衡流量 ALB上的1x HTTPS侦听器(按路径平衡流量) ALB的1x安全组(仅允许来自给定网络的入站流量) 1x安全组,用于允许ALB入

在我的账户中, 我有以下设置:

  • 具有2个服务的1x ECS群集(
    service-a
    service-b
  • 每项服务都有自己的目标群体
  • service-a
    绑定443上的端口
  • service-b
    绑定8888上的端口(我需要这样做,因为443可能已经由
    service-a
    分配) 这两个服务都可以通过HTTPS协议访问
  • 1x ALB,将在两种服务中使用,以实现负载平衡流量
  • ALB上的1x HTTPS侦听器(按路径平衡流量)
  • ALB的1x安全组(仅允许来自给定网络的入站流量)
  • 1x安全组,用于允许ALB入站流量的所有ECS EC2实例(在端口443(HTTPS)和8888(自定义TCP规则)上)
然而:

服务b
总是不健康的

我尝试在ALB上添加一个新的HTTPS侦听器,该侦听器侦听端口8888,该侦听器按预期将流量转发到我的service-b-target-group

有人有什么线索吗


提前谢谢

您是否为服务b的目标组配置了高级运行状况检查

应该是这样的

目标组的默认设置为“通信端口”。如果已配置基于路径的路由,则两个目标组的通信端口相同

url.com:443/service-a
url.com:443/service-b
上的请求将尝试对两个目标组的端口443进行健康检查


对于service-b,您应该在特定端口上定义高级运行状况检查,因为您的服务侦听该端口(在您的情况下为8888)

您是否为服务b的目标组配置了高级运行状况检查

应该是这样的

目标组的默认设置为“通信端口”。如果已配置基于路径的路由,则两个目标组的通信端口相同

url.com:443/service-a
url.com:443/service-b
上的请求将尝试对两个目标组的端口443进行健康检查


对于service-b,您应该在特定端口上定义高级运行状况检查,因为您的服务侦听该端口(在您的情况下为8888)

老实说,我不想强迫我的客户在浏览器中输入8888端口。。。一切都应该在著名的端口443上工作您的ALB健康检查是如何配置的?它们只是检查公共资源并评估其状态代码。在我的例子中:两者都试图检索一个js文件,该文件绝对可用——我在本地对其进行了三次检查是的。但是健康检查是如何配置的?哪个Ping端口?澄清有关健康检查的事情:服务-a的健康检查工作得很好…:-)只有服务b总是不健康的。。我还发现了一个提示:在我的目标组配置中,侦听器端口有80端口。。但我的服务是在8888端口提供的。。。我不知道他为什么要告诉我端口80,因为我在配置服务的过程中配置了https我真的不想强迫我的客户在浏览器中输入端口8888。。。一切都应该在著名的端口443上工作您的ALB健康检查是如何配置的?它们只是检查公共资源并评估其状态代码。在我的例子中:两者都试图检索一个js文件,该文件绝对可用——我在本地对其进行了三次检查是的。但是健康检查是如何配置的?哪个Ping端口?澄清有关健康检查的事情:服务-a的健康检查工作得很好…:-)只有服务b总是不健康的。。我还发现了一个提示:在我的目标组配置中,侦听器端口有80端口。。但我的服务是在8888端口提供的。。。我不知道他为什么告诉我端口80,因为我在配置服务时配置了https谢谢你的回复。不幸的是,那不起作用。。见附件我的配置:谢谢你的答复。不幸的是,那不起作用。。请参阅我的配置的附件: