我有一个ALB,目标组中有2个目标。然而,我的健康检查不能正常工作。两个都在显示
"Health checks failed with these codes: [404]"
我对运行状况检查路径的设置是:
/var/www/html/generic/website.com/healthcheck.php
如果我在ec2实例上执行nano /var/www/html/generic/website.com/healthcheck.php
,它会显示以下内容,我认为这应该是运行状况检查所需的全部内容。
<?php
header("Status: 200");
?>
我仔细检查了AZ和ALB是否与两个实例在同一个子网和子网中。另外,当我检查我的apache日志时,我看到的是:
"GET /var/www/html/generic/website.com/healthcheck.php HTTP/1.1" 404 196 "-" "ELB-HealthChecker/2.0"
我做错了什么,导致运行状况检查失败?
发布于 2020-08-20 07:10:43
似乎您不能使用基于名称的vhost进行健康检查。因此,我在我的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>
https://stackoverflow.com/questions/63495382
复制相似问题