Eri*_*ric 6 amazon-s3 cloudflare
我有一个 Amazon S3 存储桶,其中包含数千个 JPG 和类似的媒体资产。(这是我论坛的存储空间。)我没有在这个存储桶中托管静态站点(没有任何类型的 HTML)并且它完全开放供公众阅读(因此论坛软件可以只链接到图像)。
但是,我在 S3 上为带宽付费。有人说我应该把 CloudFlare 放在 S3 存储桶前面,这样会节省很多美元。凉爽的!但我不明白这个过程。CloudFlare 似乎想接管我主站点的所有 DNS,这不是我想要的。
我只需要https://my-bucket.s3.us-east-1.amazonaws.com被 CloudFlare 缓存/CDN。显然我无法更改亚马逊的 DNS ;-)
我不认为这会很困难,但我似乎无法找到一个相对简单的正确设置方法的解释。(换句话说:我缺乏“大局”/主要步骤。)
(这在 CloudFlare 站点上有所涉及,但我对他们的说明感到困惑,我的用例也与他们谈论的不同。)
以下是让 Cloudflare 为您的 S3 存储桶工作必须采取的步骤列表,稍后我将根据需要尝试详细说明,但这里有很多步骤:
注意:此主机名必须稍后(在第 3 步中)载入 Cloudflare,因此请根据该主机名进行选择。必须使用整个主机名来为存储桶提供服务,所以不要选择已经在使用的东西。我会用static.example.com这个。
进入 S3 并使用此域的名称创建一个存储桶,您需要选择带有图像的现有存储桶作为存储桶中的复制设置。您将希望存储桶与步骤 2 的现有存储桶位于同一区域:

将测试图像添加image.jpg到具有公共可见权限的存储桶中,将其加载到根目录中。
将主机名的 DNS 条目 ( static.example.com) CNAME到您的 Amazon 存储桶的终端节点。这通常是存储桶的名称(在本例中为static.example.com)加上包括区域的标准 S3 URL。对于我们的示例,它将是:static.example.com.s3.us-west-2.amazonaws.com,但替换us-west-2为您的实际区域。
现在看看测试资源是否可用http://static.example.com/image.jpg,请确保使用 http,因为 https 在这里不起作用。从上述步骤传播 DNS 可能需要一些时间。
您需要按照本指南将所有资源从旧存储桶复制到新存储桶。该指南足够深入,可以将您的所有资源复制到新存储桶,但如果您有一个非常大的存储桶,您可能会在这里遇到问题。
验证预期资源是否位于http://static.example.com/old_image_path.jpg。
此步骤是将您的域载入 Cloudflare。Cloudflare为此提供了一组说明。如果您有任何现有记录,请确保它们在入职列表中。应该存在的一个条目是在步骤 1 中设置的static.example.com-> static.example.com.s3.us-west-2.amazonaws.comCNAME。
设置完成后,请确保 DNS 条目处于“橙色云”模式,即代理(和缓存)模式。从第 2 步再次发出测试请求,但请注意图像是否有来自 Cloudflare 服务器的迹象。这将包括一个Server: cloudflare标头以及一个cf-cache-status标头,指示您是否正在从 Cloudflare 的缓存中检索并节省带宽。这可能需要一些时间,因为上一步需要更改 DNS 才能传播。
此时您应该能够在请求中使用 https,但如果不能,请转到 Cloudflare 的 SSL/TLS > 边缘证书选项卡并验证是否启用了 Universal SSL。
这是特定于原始问题的。所有图像链接引用都必须从旧的 s3 存储桶切换到 Cloudflare 中的新主机名static.example.com。
您可能需要调整缓存设置以节省带宽。有两种主要方法可以实现这一点。Cloudflare 将使用 Cache-Control 标头来确定如何确定缓存多长时间。您可以根据这些说明批量更新 S3 缓存控制标头。此外,Cloudflare 为您提供了使用缓存 > 配置 > 浏览器缓存 TTL 选项覆盖此标头的选项。这将修改有效地将 Cache-Control: max-age 值修改为两者中的较大者。较长的 TTL 将使图像在用户浏览器中缓存的时间更长,但也会使图像在 Cloudflare 的边缘缓存中保存更长时间并减少 S3 存储桶的负载。
尽管 cloudflare 确实提供看似免费的带宽,但它们的慷慨是有限度的。请参阅Cloudflare 条款的第 2.8 节。似乎上述网站可能违反了这些条款,如果 Cloudflare 认为您的使用量过多,则您的网站可能会被删除。届时,您将不得不使用仅 DNS 模式并返回为 S3 付费或与 cloudflare 协商一些条款和付款,以继续使用 Cloudflare 的带宽。
| 归档时间: |
|
| 查看次数: |
2896 次 |
| 最近记录: |