【问题标题】:ELB health check for redirect endpoint重定向端点的 ELB 健康检查
【发布时间】:2018-05-29 02:41:48
【问题描述】:

我有一个在 Apache2 (2.4) 上运行的 Web 应用程序 我将主页和整个网站 (/*) 重定向到另一个 url,一种身份验证,然后返回主页

所以在我的 apache2 位置指令中

...
<Location "/">
        AuthType AuthAgent
        Require valid-user
        Satisfy any
</Location>
...

所以知道 ELB 没有通过健康检查,因为主页被用作健康检查的端点。

我该怎么做才能让 ELB 在重定向发生时通过 healthcehck。重定向是302

我只是想让 ELB 说通过 302 或者我可以让健康检查通过

谢谢

【问题讨论】:

  • 在ELB的健康检查设置中,只需添加302作为有效响应码...
  • 您使用的是 Classic ELB 还是 Application Load Balancer?
  • @MattHouser 正在使用经典 ELB
  • @MarkB 我看不到在哪里编辑设置以添加 302 作为有效响应..我使用的是经典 ELB

标签: apache amazon-web-services redirect amazon-elb


【解决方案1】:

经典 ELB 只会将 200 响应视为成功。其他一切都是健康检查失败(包括 302)。

来源:http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html(参见“Ping 路径”下方)

你有两个选择:

选项 1:改用应用程序负载均衡器。通过这样做,您可以将其配置为接受 302 作为健康检查成功。

选项 2:将非重定向 URL 添加到您的网络服务器,专门用于运行状况检查。所以你会得到像/healthcheck.html 这样的东西返回 200 成功,其他一切都返回重定向 302。

【讨论】:

  • 如果我想保留当前设置,我该如何做选项 2?我需要将主页重定向到该身份验证 url,然后返回有什么方法可以实现吗?
【解决方案2】:

这是我为完美解决问题所做的!

我在 location 指令中添加了正则表达式,以便它重定向除我不想重定向的某些 URL 之外的所有 URL

...
<Location ~ "^((?!/status).)*$">
        AuthType AuthAgent
        Require valid-user
        Satisfy any
</Location>
...

所以它会重定向除/status/之外的所有内容

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2020-05-29
    • 2014-10-02
    • 2017-07-16
    • 1970-01-01
    • 2020-12-18
    • 2021-05-30
    • 2019-10-25
    相关资源
    最近更新 更多