sup*_*amp 4 amazon-web-services amazon-elastic-beanstalk
由于 Target.ResponseCodeMismatch 错误,我的应用程序的健康状态为严重。
我已尝试在此aws 指令中的后端未配置重定向。我已经在 eb config 上将端口更改为“443”,将协议更改为“HTTPS”并重新部署。它将 Health Status 更改为 Ok,但是当我访问我的 url 时,我只获得了“Index of”页面
这是eb status --verbose返回的内容:
Description: Health checks failed with these codes: [301]
Reason: Target.ResponseCodeMismatch
Run Code Online (Sandbox Code Playgroud)
这是来自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
Run Code Online (Sandbox Code Playgroud)
小智 17
对于可能像我一样遇到此问题的人,我发现解决方案是将 ELB 目标组的健康检查端点设置为我网站上返回 HTTP 200 代码的实际 URL。
在 EC2 仪表板上的负载平衡 -> 目标组下,转到健康检查选项卡并编辑站点中返回 200 代码的路径的路径。
通常,您的应用程序将在部署时公开其本机端口。对于java,这通常是8080,对于node,它是3000。然后,作为EB的一部分,AWS将仍然在您的应用程序前面公开端口80的apache或nginx的代理。ELB将端口443公开给外部。
所以你可能想将端口和协议更改为 80 / HTTP
| 归档时间: |
|
| 查看次数: |
6301 次 |
| 最近记录: |