托管于Windows EC2实例IIS的网站,应用负载均衡器健康检查失败如何解决
ALB健康检查404错误解决方案
核心错误原因
你错误将服务器本地文件系统路径填入了ALB健康检查路径字段,ALB的健康检查是通过发送HTTP/HTTPS请求检测实例可用性,无法识别服务器本地磁盘路径,因此返回404状态码。
修正配置步骤
- 首先确认IIS站点当前的物理根目录已从默认的
C:/inetpub/wwwroot修改为C:/inetpub/wwwroot/project/public(和你的业务站点入口路径匹配) - 进入AWS控制台ALB健康检查配置页,修改对应参数:
- 协议选择你站点实际使用的
HTTP或HTTPS - 端口填写IIS站点绑定的端口,默认HTTP为80、HTTPS为443
- 健康检查路径改为
/index.php,如果你的站点配置了默认文档,根路径/可直接访问,也可填/ - 健康检查期望返回码配置为
200,如果站点首页存在合法跳转可配置为200-399区间
- 协议选择你站点实际使用的
- 保存配置后等待3-5分钟,ALB会自动重新检测实例状态
可选优化方案
为避免业务站点逻辑变动(比如首页需要登录、跳转逻辑修改)影响健康检查结果,你可以单独新增健康检查专用页面:
- 在
C:/inetpub/wwwroot/project/public目录下新建health.php文件,内容示例:
<?php http_response_code(200); echo "ok"; ?>
- 将ALB健康检查路径修改为
/health.php即可,该路径不会受站点业务规则影响,检测结果更稳定。
异常排查项
如果修改配置后仍返回404,可检查以下配置:
- IIS站点的IP访问限制规则是否拦截了ALB的健康检查请求(ALB健康检查请求来源为VPC内部网段)
- 站点
web.config中的重写规则是否拦截或重定向了健康检查请求,可添加规则放行/health.php路径的请求
内容的提问来源于stack exchange,提问作者Eashan
相关产品推荐
相关产品推荐

