gpt4 book ai didi

amazon-web-services - IIS 强制 https 重定向导致 503 错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:35 25 4
gpt4 key购买 nike

我在 AWS 上有一个由 Elastic Beanstalk 提供支持的负载均衡环境。 SSL 证书应用于负载均衡器。为了强制 https 重定向,我遵循了这篇文章中接受的答案 Redirect to https through url rewrite in IIS within elastic beanstalk's load balancer .这些是我在 web.config 中编写的确切代码行

 <rewrite>
<rules>
<rule name="Force Https" stopProcessing="true">
<match url="healthcheck.html" negate="true" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>

但这会导致环境健康状况在发布后 5 分钟内变为红色,并且网站开始出现 503 错误。如果我删除它们,则没有错误。请帮助我解决这个威胁,以便 https 重定向成功。在发布后的前 5 分钟内,http 请求成功重定向到 https。只有在 503 错误开始出现之后。

最佳答案

如果您的 ELB 报告 HTTP 状态代码 503,这通常意味着它背后没有健康的 EC2 实例。

请参阅 ELB 故障排除指南:http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ts-elb-error-message.html#ts-elb-errorcodes-http503

那么现在的问题是为什么

基本上,您的健康检查失败了。

在您粘贴的那段代码中,您强制将所有请求的 HTTP 重定向到 HTTPS,healthcheck.html 除外。 .这个想法是这个单一的排除应该是你的健康检查。

要解决此问题:

  1. 确保您对 EC2 实例进行了健康检查,当通过 HTTP 直接访问 EC2 实例时返回 200。健康检查必须返回 200,否则 ELB 将无法通过检查,您的 EC2 实例将被视为不健康。

  2. 确保您的 ELB 配置的健康检查与 EC2 实例健康检查路径匹配。包括前导 /在健康检查路径的开头。

  3. 将健康检查路径放入您的<rewrite>规则,省略前导 / .你可能想放一个 ^在开始和一个$最后,因为它是一个正则表达式比较。

如果 <rewrite> 中的值规则与您的 ELB 中的实际健康检查不匹配,那么您的 ELB 将收到 HTTP 到 HTTPS 重定向响应,这被认为是失败。

关于amazon-web-services - IIS 强制 https 重定向导致 503 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com