那么文件不会与我的系统同步,CloudFront 只是缓存它们。我理解得对吗?
3 个赞
pfaffman
(Jay Pfaffman)
82
是的,没错。CDN 仅从您的网站获取被请求的资产。
Discourse 会将静态资产(如 CSS 和 JavaScript)以及上传文件推送到 S3。
4 个赞
Pravi
(PK)
83
是否可以使用 Cloudflare 规则来缓存 CSS 和 JavaScript 等静态资源?
2 个赞
bartv
(Bart )
84
是的,我们就是这样使用的,效果很好。请务必禁用任何 JavaScript 优化。您可以在这里查看我们的设置:
4 个赞
Pravi
(PK)
85
感谢您的回复。
我已经添加了第二条和第三条规则,但第一条规则我不太明白。为什么需要 301 重定向?
2 个赞
Pravi
(PK)
87
感谢您的回复。那么像 CSS 和 JavaScript 这样的静态资源呢?是否有任何针对 CSS 和 JavaScript 的规则?
2 个赞
bartv
(Bart )
88
我还没测试过那个,不确定是否可行。至少每次重建后,你都需要清除 Cloudflare 缓存。
2 个赞
Pravi
(PK)
89
对我来说,每次重建后清除缓存都没问题。如果我为 https://myforum.com/assets/ 下的所有内容设置缓存规则,还可能出什么问题?这会影响用户登录吗?如果您同意,我会测试一周并汇报结果。我还有一条未使用的规则。
2 个赞
MarcP
(MarcP)
92
澄清一下,如果我们使用 Cloudflare CDN,是否确实不需要使用此字段(以及 CDN URL)?
我已按照文档在 app.yml 中设置了 cloudflare.template。
如果使用 Cloudflare,是否还需要其他配置?
1 个赞
我刚刚成功使用了 StackPath 作为 CDN。效果如预期!
2 个赞
Canapin
(Coin-coin le Canapin)
95
现在情况还是这样吗?
来自 2019 年:
看起来我们必须格外小心,并且会失去 Cloudflare 的一些优势。
来自 2020 年:
来自 2021 年:
那么,Cloudflare 今天与 Discourse 配合是否可靠且高效?禁用“Rocket Loader”功能是否会最小化优势?
我曾考虑从 Stackpath 迁移到 Bunny CDN,但我论坛域名的所有者和前管理员拥有一个 Cloudflare 企业账户(他是 tinyURL 的所有者),他可以免费添加该域名(https://unicyclist.com/t/looking-for-a-decrease-in-the-forum-fees-in-the-future/274858/6)。
所以,我想知道使用 Cloudflare 而不是 Bunny CDN 是否正确、无痛且有效。
2 个赞
Stephen
(Stephen)
96
如果您的图片很多,那么直接增加固态硬盘的成本将远高于等效的 S3 成本。
S3 需要在其前面放置 CDN 才能具有成本效益,因为您需要按入口和出口付费,但这仍然比仅仅增加高速固态硬盘便宜得多。CloudFlare 可以放在 S3 前面,但资产缓存是唯一可以可靠使用的功能。将 CloudFlare 放在客户端和应用程序服务器之间也会增加跃点数并推高应用程序延迟。它不是万能药。
2 个赞
Canapin
(Coin-coin le Canapin)
97
我们的图片量不大。内容分发网络(CDN)的目标是让我们的国际用户(主要是美国和欧洲用户)都能快速加载资源。
我们使用 S3,但仅用于存储备份。
1 个赞
Canapin
(Coin-coin le Canapin)
98
快速提问。更换我们的 CDN 后是否必须重新烘焙?或者仅当 CDN URL 不同时才需要?或者根本不需要?
编辑:或者是否可以通过 Rails 脚本替换已烘焙帖子中的旧 URL 为新 URL?
例如,如果我有一个帖子包含:
<img class="ytp-thumbnail-image"
src="https://f5i4i8k5.stackpathcdn.com/uploads/default/original/3X/f/3/f3bc5ab19cc0394f33fd008e90ca06e081886a0b.jpeg"
title="Riding a unicycle part 76: Sullivan Canyon - Los Angeles"
width="480"
height="360"
loading="lazy"
style="aspect-ratio: 480 / 360;"
>
我能否进行搜索并用 newcdn.unicyclist.com 替换 f5i4i8k5.stackpathcdn.com 的字符串而不破坏任何东西?这似乎是安全的,但我想确保我所做的事情。
我不介意重新烘焙我所有的帖子,但第一次遇到的问题是,我有数千个嵌入的 YouTube 视频,在重新烘焙过程中,由于向 YouTube 发送了过多请求,我的 IP 被 YouTube 列入了黑名单。
所以,如果有一个比重新烘焙所有帖子更安全的方法,并且可以避免遇到同样烦人的问题,我宁愿选择这种替代方法……
3 个赞
pfaffman
(Jay Pfaffman)
99
有一个 rake 任务可以进行替换。我认为运行它很安全,也是个好主意。在所有帖子中替换字符串 应该就是你想要的。
2 个赞
Canapin
(Coin-coin le Canapin)
100
嗨 Jay,
我不确定是否要使用 rake 任务。
CDN URL 似乎存在于 cooked 字段而不是 raw 字段中(除非消息是通过电子邮件发送的)。
据我所知,post:remap 只在 raw 字段中搜索字符串。
如果替换 raw 和 cooked 字段中的 CDN URL 是安全的,我想我应该使用自定义的 rails 脚本?
2 个赞
pfaffman
(Jay Pfaffman)
101
你说得对。还有一个 . . . 东西 . . . 会替换数据库中所有字段中的一个字符串。那就是你要找的东西。抱歉,我现在找不到它了。有一些关于从一个 s3 迁移的话题,但似乎没有 #howto。
2 个赞
Canapin
(Coin-coin le Canapin)
102
谢谢这个线索!
我猜是这个?
DbHelper.remap('from', 'to')
在 Rebaking old posts won't pull new S3 CDN URL after S3 bucket rename - #10 by Brad_Wood 找到
并在以下位置使用:
如果这是更改我们的 CDN 服务时,比重新烘焙更安全的选择,那么 howto 确实会很有用。
3 个赞
pfaffman
(Jay Pfaffman)
103
哦,太好了。感谢告知。我以为这足以让你找到它。很高兴你找到了。
3 个赞