我在 Amazon CloudFront 中的域重定向出现了重定向循环问题或收到“too many redirects”错误。
解决方法
要解决重定向循环和“too many redirects”错误,请按照 CloudFront 分配的以下步骤操作。
验证您的 CloudFront 分配行为的设置是否配置正确
要验证您的设置,请执行以下操作:
对持续重定向问题进行故障排除
在典型的工作流程中,客户端连接到 CloudFront,然后 CloudFront 连接到原始服务器。您的分配的来源协议策略和原始服务器的重定向策略必须兼容。
如果您在使用 CloudFront 加载网站或应用程序时出现持续重定向,请检查 CloudFront 上的来源配置。此问题可能是由于 CloudFront 和原始服务器配置之间的协议不匹配而导致。
例如,您的原始服务器将所有 HTTP 请求重定向到 HTTPS,并且您的分配的来源协议策略设置为 HTTP。如果客户端请求 http://d12345.cloudfront.net/example.image,则 CloudFront 会向来源服务器发出请求,要求通过 HTTP 获取内容。请求到达原始服务器,然后服务器将请求从 HTTP 重定向到 HTTPS。该请求通过 HTTPS 路由回 CloudFront。然后,CloudFront 使用 HTTP 向来源发出请求并重新启动请求循环。
要解决持续重定向问题,请要求在 CloudFront 与您的自定义源之间使用 HTTPS 进行通信。但是,最佳做法是不使用 HTTP 请求来获取敏感信息,因为通信是纯文本的。
**注意:**您的自定义原始服务器上必须具有有效的 SSL/TLS 证书。如果您的原始服务器上没有有效的证书,请移除重定向策略并将原始服务器配置为接受 HTTP 请求。
使用边缘函数重定向您的域
有关如何使用边缘函数重定向您的域的信息,请参阅如何在 CloudFront 中重定向域?
配置 Route 53 和域设置
如果您使用 Amazon Route 53 进行 DNS 管理,请确保您的域记录配置正确地指向 CloudFront 分配。
完成以下步骤:
- 打开 Route 53 控制台。
- 从导航窗格中,选择 Hosted zones(托管区)。
- 在 Hosted zone name(托管区名称)中,确保域名与您的 CloudFront 分配的域相匹配。
- 在 Hosted zone name(托管区名称)中,选择您的域名。
- 在 Records(记录)中,选择您的记录名称,然后选择 Edit record(编辑记录)。
- 选择 Routing policy(路由策略)下拉列表,然后选择 Simple routing(简单路由)。
- 选择 Save(保存)。
相关信息
如何使用单个 CloudFront Web 分配提供来自使用多种行为的多个源的内容?