CDN 的来源

Origin for a CDN

我有一些关于配置 CDN 的基本问题。为此,我正在使用 Amazon CloudFront。

1) 假设我的网站是 example.com。在cloudfront的起源中,我是提到example.com作为起源还是创建一个像cdn.example.com这样的CNAME指向服务器然后输入cdn.example.com作为origin?

2) 配置完成后,我是否将 example.com 重定向到云端域,如 dxxxxxx.cloudfront.net?

3) 我会将我网站中的所有链接更新为http://dxxxxxx.cloudfront.net/xxx。现在当我浏览 example.com 时,我将被重定向到 cloudfront。但是云端也使用 example.com 作为来源。是不是像 cloudfront 试图从自身提取数据?这不会造成死循环吗?

我无法理解这个问题。如果有人能提供帮助,我将不胜感激。谢谢!!

这是它的工作原理。

  1. 您的网站位于 example.com,其中托管了您希望通过 Cloudfront 提供的所有静态文件。这个 example.com 称为源服务器、源主机,或简称为源。
  2. Cloudfront 将为您创建一个 Pull Zone,看起来像 http://dxxxxxx.cloudfront.net - 现在您必须使用此主机而不是原始的 example.com 来存放您的静态资产。所有 HTML 文件或动态文件仍将直接通过 example.com 加载。用户仍然会在浏览器中输入 example.com。只需要更改浏览器后台加载的脚本、样式、图片、字体、图标等类似静态文件即可使用CDN主机。
  3. 此时您的 CDN 设置已完成。但是,如果有人查看您页面的源代码,他们可以看到云端 URLs 被用来提供静态资产。这可能看起来不专业。作为隐藏第 3 方主机名并使用您自己的主机名来获得品牌感觉的解决方案,您可以在您的 DNS 提供商处创建一个新的子域 cdn。example.com 并将其 CNAME 到 dxxxxxx.cloudfront.net
  4. 如果您在上面创建了 CNAME 子域,您现在必须再次更新所有 URL 静态文件,并将它们的 URL 更改为使用 cdn.example.com 。您的网站仍将通过 example.com 加载,但资产现在将通过指向 dxxxxxx.cloudfront.net
  5. 的 cdn.example.com 传送
  6. 当dxxxxxx.cloudfront.net收到浏览器对静态文件的请求时,它会将该请求转发到指定的原始服务器example.com,文件实际放置在该服务器上。 Origin 会将文件发送到 cloudfront,cloudfront 会保存文件以供将来使用,并将发送一个副本到浏览器。

步骤 3 和 4 不是 CDN 集成过程的一部分。此外,子域 cdn.example.com 不是必需的。您可以使用其他一些子域或其他域。例如,以下是有效的:

cdn2.example.com
static-assets.example.com
static.assets.example.com
images.example.parent-company-website.com

同样,不需要仅从 example.com 获取资产。您可以将 my-other-website.net 指定为来源,cloudfront 会很乐意从那里为您的 example.com 站点获取资源。

在您的场景中,以下所有项都不相互依赖。您可以更改其中的任何一个或所有这些,并且只要您对配置和代码进行了必要的调整,该过程就不会中断。

Your website:  example.com
CDN origin:    example.com (since currently assets are at this host)
Pull Zone:     http://dxxxxxx.cloudfront.net/
CNAME Host:    cdn.example.com

希望这可以清除图片。