在 CloudFront 中从一个源同时设置 https 和 http

Posted

技术标签:

【中文标题】在 CloudFront 中从一个源同时设置 https 和 http【英文标题】:Set both https and http from one origin in CloudFront 【发布时间】:2021-05-18 10:40:29 【问题描述】:

我正在使用 Cloudfront 将 Web 应用程序重定向到 S3 存储桶以获取某些媒体内容。当我们尝试将 HTTPS 添加到我们的测试环境时,我们想将 https://app.foo.com 源添加到我们的云端分发中。我们尝试了两种不同的方法:

    创建源选项卡上,使用 https

    创建第二个源

    通过编辑第一个工作原点(在 http 中)并在第一个原点下方添加第二个原点标头(在原点设置选项卡中)。

这些解决方案似乎都不起作用,具有 http 源的应用程序可以访问存储桶内容。但是使用 https 的重定向不起作用。我必须准确说明我们对存储桶的授权是正常的,我们可以使用 CloundFront 链接访问存储桶内容,并且 CORS 规则接受应用程序的 http 和 https。看起来 https 来源没有被 ClondFront 处理。 提前致谢

【问题讨论】:

【参考方案1】:

您需要了解 CloudFront 是什么。它不是像您在问题中所说的那样将用户“重定向”到 S3 存储桶。它正在加载和缓存 S3 存储桶的内容,并根据请求将其提供给用户。源不是 CloudFront 将用户重定向到的位置。 Origin 是 CloudFront 从中加载资源的位置。在 http 与 https 连接和 CloudFront 的上下文中,您需要做出以下决定:

    CloudFront 将通过 http 或 https 与源通信。此决定不会影响您的用户以任何方式加载 http 或 https 资源的能力。

    CloudFront 将向您的用户提供 http 和 https 内容,还是会将所有 http 请求重定向到 https。此决定不受原始配置的任何影响。

用户的 Web 浏览器正在与 CloudFront 服务器建立 HTTP 连接,并接收来自 CloudFront 的响应。用户的网络浏览器永远不会直接连接到 S3。

您不能有两个仅通过 http/https 协议不同的来源。这两个来源将位于同一路径,并包含相同的内容。 CloudFront 只需要其中一个源,它将根据需要连接到以填充其缓存。

【讨论】:

感谢您的回答。所以我们需要重定向,我们不能在同一个分布中设置两种不同的来源吗? 感谢您的详细解释

以上是关于在 CloudFront 中从一个源同时设置 https 和 http的主要内容,如果未能解决你的问题,请参考以下文章

具有自己的源服务器的 Amazon Cloudfront 设置

Amazon Cloudfront - 将 CDN 域名传递到源服务器

源访问身份设置概述

使用 S3、CloudFront 和源路径的静态网站托管的子文件夹重定向问题

CloudFront 到 EC2 源返回 502 错误。我该如何调查?

CLOUDFRONT EC2 源错误 CloudFront 试图建立与源的连接 [重复]