由于Target.ResponseCodeMismatch错误,我的应用程序处于严重的健康状态。
我尝试过遵循重定向没有在这个aws指令的后端上配置。我已经在eb配置上将我的端口更改为'443',将我的协议更改为'HTTPS'并重新部署。它将“健康状态”更改为“确定”,但当我访问url时,只会得到“索引”页。
以下是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发布于 2020-01-20 07:32:07
对于可能遇到这种情况的人,我发现解决方案是将ELB目标组的Health端点设置为我网站上返回HTTP200代码的实际URL。
在EC2仪表板上,在负载平衡->目标组下,转到选项卡Health,并编辑站点中返回200个代码的路径的路径。
发布于 2019-08-06 14:55:54
我也有过类似的问题。在我的例子中,修复方法是将健康检查的“成功代码”设置从200更改为200,301。
发布于 2019-03-24 02:49:16
通常,您的应用程序将被部署,公开它的本机端口。在java的情况下,这通常是8080,节点是3000。然后AWS将作为EB的一部分,仍然是apache或nginx的代理,在您的应用程序面前公开端口80。是ELB把端口443暴露在外面。
因此,您可能希望将端口和协议更改为80 / HTTP
https://stackoverflow.com/questions/55320257
复制相似问题