DingMing

丁大铭的个人空间,用来分享一些前端小技巧,默默成长吧,哈哈

UNPKG和Oss边缘脚本的简述

  |  
 阅读次数

UNPKG和边缘脚本这两个技术都是利用cdn对文件进行转发,他们也有着不同,这也只是我浅显的理解,这这段时间的开发中进行了取舍,最终使用边缘脚本EdgeScript 进行了项目的开发,
下面分享下我的开发经历:

使用背景

在我入职公司之前就一直存在着这样的问题:
使用npm发布的组件库升级后,如何让产线自动引用最新的库?
这里采用的方式是组件库大发版,产线的项目也需要重新打包部署一遍,这样才能使用最新的功能。
在项目比较少的时候是可行的,但是随着项目的增多,就会带来特别多毫无意义的部署。所以通过调研,先后找到了unpkg 和 oss边缘脚本 这两个解决方案。

unpkg

unpkg 是什么

unpkg 是一个内容源自 npm 的全球快速 CDN。

注:它部署在 cloudflare上,在大陆地区访问到的是香港节点。 
它支持 h/2 和很多新特性,如果不考虑网络延迟的原因,性能优化较为出色。在国内一些互联网公司也有镜像,例如知乎和饿了么。

它能以快速而简单的方式提供任意包、任意文件,通过类似这样的 URL :
unpkg.com/:package@:version/:file

使用体验

  • 国外 CDN 对付国内用户,总是不够快,甚至随时可能被墙;
  • 公司组件部署到三方cdn上存在风险
  • unpkg 本地化之后过于中心话,会导致服务器压力过大,达不到预期的想法

所以最终放弃了这是方案。

最终我们的边缘脚本(EdgeScrip)登场了


Oss边缘脚本(EdgeScript)

边缘脚本使用文档

初探

unpkg方案搁置之后,开始忙别的需求,使用到了oss进行cdn缓存文件,这个同时发现了边缘脚本这个概念

边缘脚本(EdgeScript,简称ES)是一个可供您快速实现CDN定制配置的工具箱,
当CDN控制台上的标准配置无法满足您的业务需求时,可以尝试使用边缘脚本简单编程实现。

运行原理

配置的边缘脚本规则与CDN控制台上的标准配置一样,都是对CDN请求进行处理。边缘脚本的执行位置如图所示,当客户端请求到达CDN节点后,CDN节点网关会根据您在控制台上设置的标准配置、边缘脚本规则对请求进行处理。以CDN控制台上的标准配置为参照物,边缘脚本可选择在请求处理的最前面或最后面生效。

执行位置与优先级

EdgeScript的执行位置与优先级如下:

  • 执行位置 EdgeScript规则的执行位置为请求处理开始和请求处理结尾。
    • 请求处理开始:常用应用场景为一次鉴权、拦截、限速等。
    • 请求处理结束:常用应用场景为缓存设置、回源鉴权、AB测试等。
  • 优先级 处于同一执行位置的多条规则,可以通过选择优先级,决定其先后执行顺序。

通过CLI工具使用边缘脚本

通过CLI工具使用边缘脚本

我这里将cli工具集成到了node项目中,在使用python脚本直接上传es规则,这样就可以做到组件发版,一键同步es转发规则。就能完美解决现在的问题。效果图如下:

实现的效果

使用效果

  1. 在输入url,他会通过自定义的ES规则进行302转发到链接 3
  2. 我们可以设置他的强制缓存,我这里设置了120s
  3. 302重定向到最新的链接