V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
myqoo
V2EX  ›  分享创造

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

  •  
  •   myqoo · 2021-07-11 14:00:45 +08:00 · 2259 次点击
    这是一个创建于 1010 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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#资源快速更新)


    # 功能演示

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

    这个项目正确的用途应该是为了避免单一 CDN 服务宕机,以及给访客提供速度最快最稳定的 CDN,可以启用多个 CDN 服务,比如同时开启 Cloudflare,Fastly 和 Akamai,然后使用不用的二级域名给静态资源做 CDN
    myqoo
        7
    myqoo  
    OP
       2021-07-20 16:23:09 +08:00
    @Showfom 是的,初衷是用来前端负载均衡。用公共 CDN 只是为了方便演示,还有给个人博客之类的小流量网站加速。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1006 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:12 · PVG 04:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.