CDN刷新策略

分享
CDN刷新策略

发布文章,但是浏览器没有更新,这就是使用CDN,尤其是全站加速之类的CDN后,会面临一个问题。

这个问题的解决是需要根据自己的实际使用情况处理的。

问题来源

主要的问题来源就是CDN服务的缓存策略。一般的,CDN服务与我们的源站可能不是同一家服务商,那么这两家治之间就不会有服务上面的联系。因此,你的源站更新了,CDN并不知道你已经更新了。

因此,一个比较符合源站更新频率的策略就非常重要。

适合的时长就是最好的

如果网站更新不频繁,那么CDN缓存时间应该建议尽可能长,这里不是说系统支持的时长,而是你能接受的时长。应该说,视你更新网站的情况而定,没有最好的时间,适合的才是最好的。

全站加速(G-core labs)

对于CDN来说,最好还是使用全站加速,动态文件和静态文件都能通过CDN来缓存,真正实现全方位的保护。参考我的文章:

G-Core Labs 全站加速

但是,这里也会存在缓存更新的问题,例如G-core labs的推荐缓存时间为4天,我认为如果是比较勤快的博主,写的文章要等4天才能刷新,是不是有点长。对于G-core labs的缓存原理,我也在学习和测试。

E-tag

看官方文档,对缓存时间也有简要描述,大概意思是,缓存时间到期后,会去源站抓取E-tag,通过对比源站的网页E-tag和CDN上的E-tag,如果一致就进入下一个周期,如果不一致,就抓取源站的内容替换CDN上的内容,实现内容同步。

因此,这里就有一个新概念:E-tag。着是什么东西?我也去查了一下,是比较基础的Web服务组件。大概的功能就是,每个页面会有一个E-tag标签,携带了唯一编码,每次修改都会改变编码。CDN服务端会在缓存到期后,抓取源站的E-tag信息,与CDN端进行比对,如果有区别,说明源站已经更新,那么就会丢弃CDN端缓存,从源站重新抓取内容进行缓存。这样,CDN端就更新了新的内容了。如果没有区别,那么CDN端就会进入下一个周期,到期后再去抓取源站信息。

阅读更多

更好的字幕翻译工具

更好的字幕翻译工具

如果你还在找一个更好的字幕翻译工具,那么就是是“沉浸式翻译”这个浏览器插件把,免费版本可以使用微软翻译、硅基流动翻译、GlM-4 Flash和Babel lite。 我测试了一下《挽救计划》的英文字幕,翻译成中文。这部电影的字幕其实难度还是挺大的,不过就我测试了硅基流动翻译、GlM-4 Flash和Babel lite 3个模型的翻译效果,这里推荐Babel lite模型。原因如下: 字幕里面有一个断句的 文本,Babel lite能准确翻译出原文表达的意思: 00:09:4900:09:52Over the next 30 years, the Earth could在未来 30 年,地球可能会 00:09:5200:09:55cool maybe 10凉爽,也许 10

By typenode
给网站添加view-transition动画

给网站添加view-transition动画

view-transition是一个很专业的功能,可以通过CSS去实现网页动画,在跨网页浏览上启用view-transition,无需多余配置即可获得一个优雅的网站页面切换效果。 适用于多页面应用的跨文档视图过渡 | View Transitions | Chrome for Developers开始在您的多页应用 (MPA) 中使用跨文档视图过渡。Chrome for DevelopersX demo: HomecamelCase 配置 在Code injection里面添加如下代码即可: <style> @view-transition { navigation: auto; } ::view-transition-group(root){ animation-duration:600ms } </style>

By typenode
Fix ActivityPub Webhook Error

Fix ActivityPub Webhook Error

之前的Ghost托管在PikaPods上面,其实相当于是Managed Ghost,所以你不需要去操心服务器的配置。最近换了服务商,那么情况就不一样了,遇到的所有问题都需要自己去处理,其中一个就是ActivityPub无法正常使用。 错误排查 查看log后发现报错:No Webhook Secret Found。 原因分析 * /.ghost/activitypub/* * /.well-known/webfinger * /.well-known/nodeinfo 上面三个ActivityPub资源配置错误,并未通过https反对带至ap.ghost.org。 处理办法 将需要反代的路径添加至nginx配置文件即可: location ~ /.ghost/activitypub/* { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_se

By typenode