Cloudfront 正在重定向到我们的网站

Cloudfront is redirecting to our website

截至今天上午,经过多年的正常工作,我们的云端帐户一直在重定向 (301) 到我们的网站以获取资产,而不是自行提供资产。有什么想法可以恢复吗?

昨晚我将我们从使用 Passenger 切换到 Puma 作为我们的 Web 服务器,作为其中的一部分,我在 production.rb 中更改了 config.serve_static_files = true。但是,即使我恢复到 config.serve_static_files = false,云端 URL 仍会重定向到我们的主页。

有什么解决办法吗?

经过一番排查,问题原因如下:

  1. Nginx 显然提供来自 http 的 public/ 文件,即使存在从 http 到 https 的 301 重定向
  2. Puma 使用机架来提供 public/ 文件,如果从 http
  3. 请求 public 文件,它将 return 301 重定向到 https
  4. 如果 Cloudfront 从它路由到的服务器(在本例中为 http)接收到 301 重定向,它只会将 301 重定向转发给用户,因此他们将永久重定向到网站的 https,而不是 cloudfront接收他们的文件。
  5. 修复此问题的配置设置将我们的云端源更改为 'Match Viewer' 而不是原来的 'Http only'。然后我们不得不等待人们的缓存被清除,因为它是永久重定向 (301)。

附带说明一下,我认为 Cloudfront 不应该将 301 重定向转发给客户端。这对我来说似乎不理想。