amazon-web-services - AWS ALB 运行状况检查 404
问题描述
我有一个 ALB,目标组中有 2 个目标。但是我的健康检查不能正常工作。两者都在显示
"Health checks failed with these codes: [404]"
我对健康检查路径的设置是:
/var/www/html/generic/website.com/healthcheck.php
如果我nano /var/www/html/generic/website.com/healthcheck.php
在 ec2 实例上执行此操作,它会显示这应该是我认为需要的所有健康检查。
<?php
header("Status: 200");
?>
我仔细检查了 AZ 和 ALB 与 2 个实例在同一个和子网中。此外,当我检查我的 apache 日志时,这就是我所看到的:
"GET /var/www/html/generic/website.com/healthcheck.php HTTP/1.1" 404 196 "-" "ELB-HealthChecker/2.0"
我做错了什么导致健康检查失败?
解决方案
似乎您不能使用基于名称的虚拟主机进行健康检查。所以在我的 vhost 文件中,我添加了以下代码。它的作用是,如果有人直接访问您的 ip,它会给他们一个 404,但如果他们访问您的 ip/healthcheck,那么它将显示 200,这是 ALB 需要的。然后在你的路径中放 /healthcheck。
<VirtualHost *:80>
ServerName default
RewriteRule "/healthcheck" - [R=200]
Redirect 404 /
</VirtualHost>
<VirtualHost _default_:80>
RewriteRule "/healthcheck" - [R=200]
Redirect 404 /
</VirtualHost>
推荐阅读
- python - 如何重新排列熊猫数据框的每一行
- c - 在 gcc 上设置目标体系结构以针对 SH2A
- r - `obj_addr` 未在 .Rmd 文件中返回预期输出
- kubernetes - Kubernetes 服务负载均衡技术
- javascript - 尝试在 Onclick index.html 脚本标记中捕获 Electron App 错误中的全屏截图
- jquery - 我可以运行 taffydb 查询忽略大小写而不将其与 like 组合吗
- php - Joomla 3 和 VM 密码重置重定向到 VM 寄存器
- bash - 将子目录中的所有文件移动到工作目录并添加路径作为前缀
- javascript - Puppeteer - Cucumber - 使用一个浏览器进行测试
- angular - tinymce 编辑器触发的事件不会立即更新 Angular 组件