使用免费图床当做分布式 CDN

2021-07-11 14:00:45 +08:00
 myqoo
https://github.com/EtherDream/freecdn


# 项目简介

freecdn 是一个纯前端的 CDN 解决方案,用于降低网站流量成本,同时提高网站稳定性、安全性,并且无需修改现有的业务逻辑。


# 功能亮点

## 自动选择公共库

互联网上有很多免费的公共库 CDN,例如 `cdnjs`、`jsdelivr`、`unpkg`,但哪个最稳定,始终没有明确的答案。

现在你无需纠结这个问题,随意选择即可。freecdn 可根据用户的网络状况,实时切换到合适的 CDN 。

## 全站 Hash 校验

现代浏览器可通过 SRI 校验资源完整性,降低第三方站点的风险。但 SRI 也存在一些不足,例如支持的类型太少、需要修改 HTML 、缺少备用机制。

freecdn 能校验任意类型的资源,例如图片是否被篡改,从而提升内容安全;无需修改 HTML,并且所有 Hash 统一维护,方便使用和更新;即使校验失败,自动切换到备用资源,避免损坏业务。[查看更多](docs/feature/README.md#全站-Hash-校验)

## 充分利用图床

网站图片很耗流量,不少人将图片上传到图床、相册等第三方站点,充当免费 CDN 。但这也存在诸多难以预测的情况,例如图片被删、限制外链、添加水印、有损压缩、限速等等。

现在你无需担心这些问题。你只需将图片备份到多个图床,freecdn 会依次尝试,直到获得预期内容。此外,不仅是图片,任意类型的文件都可通过图床加速!

## 网站离线运行

任何网站都无法避免网络故障,例如机房故障、DNS 故障、运营商丢包、DDOS 攻击,导致网站无法稳定访问。

freecdn 支持网站离线运行。用户只有首次访问依赖你的服务器,之后即使服务器关机,前端程序也能从备用站点加载最新的页面和资源,成为一个不依赖中心的网站。

## WebP 无缝兼容

相比 JPG/PNG/GIF 等格式,WebP 有着更高的压缩率,但并非所有浏览器都支持,因此需处理兼容性。传统的无缝兼容需要后端支持,服务器根据 Accept 请求头决定是否返回 WebP 格式,从而实现同个 URL 返回不同格式的效果。

freecdn 可在前端实现这个功能,无需后端支持。

## 资源快速更新

HTTP 的缓存时间,一直是个头疼的问题。时间太短,性能不够好;时间太长,更新不及时。因此很多网站都有自己的资源更新方案。

freecdn 使用独特的更新机制,只需更新一个清单文件,就能更新所有资源。[查看更多](docs/feature/README.md#资源快速更新)


# 功能演示

......
2490 次点击
所在节点    分享创造
7 条回复
oreoiot
2021-07-11 14:25:21 +08:00
套娃?
willis
2021-07-11 17:27:48 +08:00
做网站就实实在在的付流量费,放过这些公共库吧
lscho
2021-07-11 18:03:06 +08:00
unicloud 的阿里云免费 CDN 了解一下
NatsumeMio
2021-07-11 18:22:14 +08:00
@willis 对的,自己把所有图片转换成 webp,就只用 30%-50%的流量了。
zoharSoul
2021-07-12 10:13:08 +08:00
听起来不错
Showfom
2021-07-19 19:23:41 +08:00
楼主的演示不应该都是这些公共 CDN,毕竟大家都是用爱发电

这个项目正确的用途应该是为了避免单一 CDN 服务宕机,以及给访客提供速度最快最稳定的 CDN,可以启用多个 CDN 服务,比如同时开启 Cloudflare,Fastly 和 Akamai,然后使用不用的二级域名给静态资源做 CDN
myqoo
2021-07-20 16:23:09 +08:00
@Showfom 是的,初衷是用来前端负载均衡。用公共 CDN 只是为了方便演示,还有给个人博客之类的小流量网站加速。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX