由于Target.ResponseCodeMismatch错误,我的应用程序的运行状况为严重。
我已尝试遵循{strong>在此aws instruction的后端中未配置重定向。并且我已将eb config上的端口更改为'443',并将协议更改为'HTTPS',并进行了重新部署。它将“健康状态”更改为“确定”,但是当我访问自己的网址时,我只会看到“索引为”页面
eb status --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
答案 0 :(得分:1)
我有类似的问题。对于我来说,解决方法是将运行状况检查的“成功代码”设置从200
更改为200,301
。
答案 1 :(得分:0)
通常,您的应用将进行部署以公开其本机端口。对于Java,通常为8080,节点为3000。然后,作为EB的一部分,AWS仍将在应用程序的前面暴露apache或nginx的代理,从而暴露端口80。ELB将端口443暴露给应用程序。外。
所以您可能想要将端口和协议更改为80 / HTTP
答案 2 :(得分:0)
这似乎对我有帮助
“健康检查设置”>“高级健康检查设置”
下:“端口”从“流量端口”到“覆盖”并使用“80”
在:“成功代码”
一个 EB 实例 从“200”到“200,300,301,302,303,304,305,306,307,308”(在 Elastic Beanstalk 中,由于“3xx 响应”而下降)
EB 的第二个实例 从 "200" 到 "200,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,422,425,404,422,425,408,422,425,408,422,425,408,422,425,42842, 响应"Elastic>4p2842,
答案 3 :(得分:-1)
我遇到了以下问题:
Description: Health checks failed with these codes: [400]
Reason: Target.ResponseCodeMismatch
对我来说修复的是将 Success codes
值输入到 400
。
EC2(服务)> 负载平衡(从左侧菜单)> 目标组(单击名称)> 运行状况检查(单击选项卡)> 编辑 > 高级运行状况检查设置 > 成功代码 = 400