【问题标题】:AWS Application ELB Target Group Unhealthy 403?AWS 应用程序 ELB 目标组不健康 403?
【发布时间】:2018-07-07 17:19:51
【问题描述】:

我试图弄清楚为什么我的 ELB 目标组没有通过运行状况检查并引发 403(禁止)错误。详情如下:

  • AWS Windows 10 服务器
  • 适用于 Apache、PHP 和 MySQL 的 WampServer3
  • 应用弹性负载均衡器

我有这样的 ALB 目标组健康检查设置

  • 协议:HTTP
  • 路径:/folder1/folder2/public/index.php
  • 端口:交通端口
  • 默认阈值和超时时间

在我的安全组中,我为入站流量打开了端口 80、443 和 22。

因为它抛出 403(禁止)错误,我必须假设健康检查“路径”设置不正确。

我正在使用 wamp,所以我的默认路径是 c:/wamp64/www 所以我很自然地首先将路径设置为指向我网站的主页(我可以从网络正常),但健康检查仍然失败并显示 403 错误。

我什至尝试输入一个不存在的路径以查看它是否会引发不同的错误,但它只是在将鼠标悬停在不健康标签旁边的“i”上时显示 403,所以我什至不确定健康检查正在更新。

编辑

好的,通过下面给出的资源,我已经成功拉取了cURL中的“PrivateIP/index.php”页面。

我已将我的目标组健康检查路径更改为“/index.php”,但它仍然抛出 403 错误。

我什至可以从 PrivateIP 公开访问我网站的主页,这似乎不安全,但让我想知道为什么它仍然失败。下面是我在 httpd-vhosts.conf 文件中允许这样做的设置。

<VirtualHost *:80>
ServerName website.com
ServerAlias xx.xx.xxx.xxx
DocumentRoot c:/wamp64/www/x/x/public/
<Directory  "c:/wamp64/www/x/x/public/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
</Directory>

服务器别名是我的实例上弹性 IP 设置的私有 IP。

如果有人知道下一步要检查什么,请告诉我。

【问题讨论】:

  • 使用 curl 并通过实例中的实例 IP 测试站点。如果实例 IP 为 10.0.0.50,则运行 curl 10.0.0.50/folder1/folder2/public/index.php。这就是 ELB 所要求的。检查您的设置并确保可以如上所述引用该站点。如果你没有 curl,你可以使用本地浏览器。
  • 为了简单起见,使用 /healthcheck.php 作为健康检查目标。确保按上述方式工作。
  • ELB健康检查不使用域名它使用实例私有IP。您的服务器未正确配置为通过其 IP 提供页面。检查 apache 服务器配置。
  • @Matthew 您在配置健康检查时是否尝试过指定端口而不是流量端口?您还尝试过检查您的 apache 日志以查看 ELB 在进行健康检查时尝试访问的内容吗?日志会将您指向健康检查尝试访问的确切位置,然后您可能需要根据需要修改一些权限。

标签: amazon-web-services amazon-ec2 amazon-elb


【解决方案1】:

您可以通过在默认 wamp 路径上添加一个 index.html 文件来解决此失败的健康状态问题,然后检查您的目标组中的实例健康状态并在目标组中配置您的健康检查,如下所示:

Protocol:HTTP
Path:/
Port:80

文件位置:c:/wamp64/www/html/

【讨论】:

  • 对我来说,这就是原因……我高估了,仅仅检查“localhost”是否有效就足够了。但是不。我必须在每个目标服务器上“触摸 index.html”,才能通过 ALB 运行状况检查。令人沮丧,但它现在可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 2019-03-17
  • 2019-10-25
  • 2016-03-28
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
相关资源
最近更新 更多