Amazon web services 如何修复';健康检查失败,代码为';在elasticbeanstalk Instance上?

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

由于Target.responseDemismatch错误,我的应用程序的运行状况为严重

我尝试了以下操作:在本例中,未在后端配置重定向。我在eb配置中将我的端口更改为'443',将我的协议更改为'HTTPS',并重新部署。它会将健康状态更改为Ok,但当我访问我的url时,我只会得到“索引”页面

以下是
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的宝贵评论。你的评论救了我。:-)