PHP 应用程序负载均衡器背后的应用程序未通过健康检查

PHP application behind application load balancer failing health check

我正在尝试通过 AWS CodeDeploy 部署 PHP,目前卡在 CodeDeploy 中的 AllowTraffic 步骤。该应用程序位于 ALB 后面的 EC2 实例上。在 ALB 中,我的健康检查失败了。我的 PHP 应用程序代码位于 EC2 实例的以下目录中:/var/www/html/src。如果我在代码所在的目录后面卷曲 EC2 的私有 IP,我会收到错误 404 Not Found。即使 index.php 文件在该目录中,我也无法对其进行卷曲。目前我有安全组设置,其中 ALB 安全组仅允许来自 HTTP 的任何流量,并且允许来自 ALB 安全组的所有流量到达 EC2 实例。我能够卷曲实例的根并查看 Apache 的默认页面。

如果我要调整 ALB 目标组的健康检查设置,我会在将健康检查设置为 / 时收到 403 错误。指定具有 PHP 应用程序代码的目录的路径时出现 404 错误。

任何关于如何使 ALB 实例处于健康状态的建议都将不胜感激。

TG 健康检查

Application Load balancer 安全组允许端口 80 上的流量 EC2 实例安全组允许来自 Application Load Balancer 安全组的流量。

PHP 应用程序应该可以在端口 80 上访问,其中 Apache 是 运行。应用程序负载均衡器只有 1 个为端口 80 设置的侦听器,用于将流量转发到目标组。

你的TG中的健康检查路径应该是URL路径,而不是EB实例上的实际位置。你可以试试 /index.php:

/index.php

这假定您的应用程序确实在运行,唯一的问题是运行状况检查。