Amazon web services 如何修复';健康检查失败,代码为';在elasticbeanstalk Instance上?
由于Target.responseDemismatch错误,我的应用程序的运行状况为严重 我尝试了以下操作:在本例中,未在后端配置重定向。我在eb配置中将我的端口更改为'443',将我的协议更改为'HTTPS',并重新部署。它会将健康状态更改为Ok,但当我访问我的url时,我只会得到“索引”页面 以下是Amazon web services 如何修复';健康检查失败,代码为';在elasticbeanstalk Instance上?,amazon-web-services,amazon-elastic-beanstalk,Amazon Web Services,Amazon Elastic Beanstalk,由于Target.responseDemismatch错误,我的应用程序的运行状况为严重 我尝试了以下操作:在本例中,未在后端配置重定向。我在eb配置中将我的端口更改为'443',将我的协议更改为'HTTPS',并重新部署。它会将健康状态更改为Ok,但当我访问我的url时,我只会得到“索引”页面 以下是eb状态--verbose返回的内容: Description: Health checks failed with these codes: [301] Reason: Target.Respo
eb状态--verbose
返回的内容:
Description: Health checks failed with these codes: [301]
Reason: Target.ResponseCodeMismatch
这是来自eb config
:
AWSEBV2LoadBalancerListener.aws:elbv2:listener:default:
DefaultProcess: default
ListenerEnabled: 'true'
Protocol: HTTP
Rules: null
SSLCertificateArns: null
SSLPolicy: null
AWSEBV2LoadBalancerListener443.aws:elbv2:listener:443:
DefaultProcess: default
ListenerEnabled: 'true'
Protocol: HTTPS
Rules: null
SSLCertificateArns: arn:aws:acm:us-east-2:XXXX:certificate/XXXXXX
SSLPolicy: ELBSecurityPolicy-XX-XX-XXXX
aws:elasticbeanstalk:environment:process:default:
DeregistrationDelay: '20'
HealthCheckInterval: '15'
HealthCheckPath: /
HealthCheckTimeout: '5'
HealthyThresholdCount: '3'
MatcherHTTPCode: null
Port: '443'
Protocol: HTTPS
通常,您的应用程序将获得部署,并公开其本机端口。对于java来说,这通常是8080,而node是3000。然后,作为EB的一部分,AWS将仍然是apache或nginx的代理,位于应用程序端口80的前面。正是ELB将端口443暴露在外面
因此,您可能希望将端口和协议更改为80/HTTP,我遇到了类似的问题。在我的案例中,解决方案是将健康检查的“成功代码”设置从
200
更改为200301
,对于像我这样可能遇到这种情况的人,我发现解决方案是将ELB目标组的健康检查端点设置为我网站上返回HTTP 200代码的实际URL
在EC2仪表板上的“负载平衡->目标组”下,转到“运行状况检查”选项卡,并编辑站点中返回200代码的路径
这似乎对我有所帮助 “运行状况检查设置”>“高级运行状况检查设置” 在“端口”下,从“交通端口”改为“覆盖”,并使用“80” 在“成功代码”下 EB的一个实例 从“200”到“2003003010303304305306307308”(弹性豆茎健康状况因“3xx反应”而下降) 电子商务二审
从“200”到“20040040140240240204405406407408409410411412414415416417418422425426429431451”(弹性豆茎健康指数因“4xx反应”而下降)感谢@jason的宝贵评论。你的评论救了我。:-)