我注意到我们网站的 S3 图片服务带宽(传输)成本持续攀升。定价为每 GB 0.09 美元,费用累积速度非常快。我想我不是唯一一个遇到此问题的网站吧?目前我每月仅向亚马逊支付 70 美元的传输费用,这甚至超过了我的虚拟机成本。S3 存储成本仅为每月 5 美元,整个问题的症结在于传输费用。
我尚未配置任何 CDN 或缓存,仅是在 Linode 虚拟机上运行一个完全通用的 Discourse,并使用 S3 图片存储桶。那些拥有大量图片的大型网站都在做什么?使用 CDN(我猜测这能降低成本)?采用 Digital Ocean Spaces 或 Minio?还是我遗漏了其他什么方案?
Falco
(Falco)
2
为 S3 使用 CDN 是正确的做法。这将大幅降低传输成本。
如果您预算紧张,可以考虑使用 Cloudflare 的子域名来实现这一目标。
嗯……查看 Fastly 和 Amazon CloudFront(以及其他服务商)的带宽成本,它们几乎和我现在支付的 0.09 美元/GB 一样,真是让人沮丧。
Cloudflare 似乎不收取带宽费用?那也许这就是值得尝试的方案。有没有关于如何在 Discourse 上将 Cloudflare 与 S3 图片 CDN 集成的帖子?我看到了 s3_cdn_url 这个参数,但找不到如何使用它的具体说明(除了设置好后需要重新烘焙)。查看 Cloudflare 的文档,似乎你需要拥有自己的域名,因为需要修改 DNS 设置……所以我需要创建一个 CNAME,比如 s3-cloudflare.mydomain.com,指向我的 S3 存储桶 IP,然后告诉 Cloudflare 对该 URL 进行处理,同时将 s3_cdn_url 设置为该地址,最后再重新烘焙?
我在 Cloudflare 的支持页面找到了以下内容,看起来这可能可行:
https://support.cloudflare.com/hc/en-us/articles/360013791312-Fetching-object-storage-assets-through-the-Cloudflare-CDN-using-a-Cloudflare-Worker
有人正在这样做吗?我有点惊讶,像这样导致月度成本至少翻倍的问题,竟然没有更多网站遇到。
bartv
(Bart )
4
我在 我的 Discourse 站点 上使用了 Cloudflare,运行良好。您只需将所有流量路由到 Cloudflare,并告知它需要处理或缓存的内容即可。不过,有几点需要注意:
- 配置 Cloudflare 不要缓存任何内容(使用页面规则设置例外情况,详见下文)。
- 不要让 Cloudflare 处理您的 JavaScript——具体来说,请关闭 Rocket Loader。
- 关于 Brotli 压缩,我目前还不确定,已将其禁用。
- 设置页面规则以缓存头像和上传目录,如下所示(忽略第 1 条规则,该规则是针对特定站点的)。
目前,Cloudflare 每月为我缓存的数据量略超过 3TB,并且能够非常快速地提供大型图形内容。
如果您更关注 CDN 服务,我也可以推荐 https://www.belugacdn.com/(我与该公司无任何关联)。我在一个大型 WordPress 平台上使用它,性能良好,且成本仅为其他一些 CDN 平台的一小部分(其他平台可能性能更优,但 Beluga 已满足我的需求)。
Richie
(Richie Rich)
7
@scottfsmith,你最终是否离开了 Amazon CloudFront?
我在支出不断上涨方面也遇到了类似的情况。
CloudFront 对我来说还比较新。过去几年我一直只使用 S3 存储桶,但根据这里的建议,我上个月才搭建起 CloudFront。
这一切只是将成本从 S3 的数据传输转移到了 CloudFront 的数据传输上,每月的总账单金额依然没有变化。
我发现自己正面临一个难以持续的数据传输月度账单。
我也面临同样的情况。我前不久也迁移到了 CloudFront,成本看起来也差不多。我原以为本地缓存能带来一些节省,也就是说,如果同一张图片从同一地理位置重复加载,带宽消耗会更低,但到目前为止看来并非如此。
似乎应该有其他的 CDN 可以替代 CloudFront。Discourse 所做的只是重写图片 URL,因此看起来相当通用。也许可以仅针对图片使用 Cloudflare。
Richie
(Richie Rich)
9
我的理解也完全一样。
我们 98% 以上的流量来自英国,自然也有 98% 通过 CloudFront 从 S3 流出的流量是发往英国的。
到目前为止,我尚未看到使用 CDN 带来任何好处。如果我们的流量遍布全球,或许情况会有所不同。
接下来几天我会查阅一下 Cloudflare 的相关资料(这两家公司怎么会起这么相似的名字!),看看能否找到任何优势。
谢谢 
如果您发现任何问题,请在此处跟进。我一直打算亲自查看此事。
Falco
(Falco)
12
Stackpath CDN 的费用为每月 20 美元,流量上限为 1TB,而我许多月份的用量都超过了这个限制。一旦超出,费用会跃升至每月 200 美元(上限为 20TB),这比亚马逊目前向我收取的每月约 100 美元还要高。
不过,列表中或许还有其他更合适的方案,感谢您提醒我查看这份列表。
yu_miao
(yu miao)
14
Imgur 对所有用户免费,但目前没有为此提供的插件。

pfaffman
(Jay Pfaffman)
15
这样的插件会做什么?它只是不下载 Imgur 插件,还是会像当前系统那样,通过某个(想必存在的)API 接口将所有图片上传到 Imgur?
这对您来说价值几何?我怀疑这并不符合 CDCK 的商业模式,因为他们的付费托管服务使得 Discourse 能够被我们所有人使用,而且他们的托管服务在没有 Imgur 插件的情况下也能正常运行。
bartv
(Bart )
17
我们仍然在使用 Cloudflare 设置,是的。
确认无误。
您使用的设置不是全页缓存,对吗?
或者,使用 Cloudflare CDN 相较于其他 CDN 有什么特别的优势吗?
bartv
(Bart )
19
不,我们只缓存上传和头像目录;请参阅我们上面的规则。如果您尝试做其他事情,很可能会破坏 Discourse。
它是免费的 
像 JS 和 CSS 这样的静态资源怎么样?
如果我们使用 本指南 来使用 CDN,那么它将与上传和头像一起提供静态资源(如果我没记错的话)。
那么,如果我们通过 Cloudflare 提供所有静态资源,Discourse 为什么会中断?
bartv
(Bart )
21
我不记得了,已经好几年了。为什么不试试然后汇报结果呢?
虽然这个帖子又被顶上来了,我也应该跟进一下……似乎 Amazon CloudFront 的定价大幅降低了。我不知道他们做了什么,但我的平均 AWS 费用从每月 80 美元左右降至每月 15 美元。这包括 S3 和 CloudFront 用于图片(仅图片)的费用,而我的网站上有大量的图片。
Ed_S
(Ed S)
23
Cloudflare 没问题——只需禁用其 Rocket Loader 功能。
无需任何配置,它就能为我的服务器节省一半的带宽。
也许多年前 Cloudflare 与 Discourse 的兼容性不好,但今天情况并非如此。最好不要一直看到人们对此表示怀疑。如果有人遇到具体问题,他们应该在这里开一个支持帖,描述具体哪里不起作用。