【问题标题】:Eureka server health check fails in AWS Application Load BalancerAWS Application Load Balancer 中的 Eureka 服务器运行状况检查失败
【发布时间】:2017-01-19 00:05:59
【问题描述】:

我在 ECS 集群中配置了一个 eureka 服务器,并为它的服务使用了一个应用程序负载均衡器。 eureka 被配置为使用下面的属性文件接受身份验证。

security.user.name=xxxxx
security.user.password=yyyy

在负载均衡器中,我在端口 8761 上为 eureka 创建了一个目标组。我为运行状况检查提供了 '/' url。但是负载均衡器的健康检查失败并出现以下错误。

Health checks failed with these codes: [401]

这表示 ALB 由于身份验证而未能通过健康检查。 (删除身份验证部分有效,但会导致其他一些错误)。有没有办法通过 ALB 的健康检查?

【问题讨论】:

    标签: java amazon-web-services netflix-eureka amazon-ecs elastic-load-balancer


    【解决方案1】:

    用于 ALB 运行状况检查的 URL 必须返回 200 到 399 之间的值。此外,您的 ALB 必须配置有可接受的响应值。

    来源:http://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html

    其他任何事情都会导致失败:

    • 401 会导致失败。
    • 301 与 ALB 未配置为 301 正常,将导致失败。

    要通过 ALB 运行状况检查,您必须提供可以返回可接受状态代码的 URL。可以是健康检查专用的路径,如/System/Check/

    【讨论】:

    • 您可以配置 ELB/ALB 以接受其他返回代码。例如,您可能认为 301 重定向是一个健康的响应。当然,在这种情况下,401 听起来不像是一个健康的返回码。
    • 经典 ELB 固定为 200。ALB 可配置在 200 到 399 之间。我已经更新了答案。
    • 感谢您的澄清和文档链接。我忘了你不能在经典的 ELB 上编辑它。而且我没有意识到 ALB 有范围限制。 AWS 控制台中的工具提示听起来像是可以接受任何值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2020-04-28
    • 2021-12-26
    • 2022-01-19
    • 1970-01-01
    • 2017-07-30
    • 2019-05-23
    相关资源
    最近更新 更多