一、前提条件
·已安装 Node.js(Node.js 版本需不低于 8.6,建议使用 Node.js10.0 及以上版本)。
·需要开通 内容分发网络 服务。
二、安装
已经安装 Serverless Cloud Framework 。详情请参见 安装 Serverless Cloud Framework。
三、配置
1. 新建一个cdnDemo文件夹。
mkdir cdnDemo
2. 在cdnDemo中创建 serverless.yml 文件;
Mac 系统Linux 系统Windows 系统cd cdnDemotouch serverless.ymlcd cdnDemotouch serverless.ymlcd cdnDemoecho. > serverless.yml
3. 在 serverless.yml 中进行如下配置:
# serverless.ymlcomponent: cdnname: cdnDemoapp: appDemostage: devinputs: area: overseas domain: mysite.com #域名 origin: origins: – xxx.cos.ap-guangzhou.myqcloud.com #源站,可以是域名或 IP originType: cos originPullProtocol: https serviceType: web forceRedirect: switch: on redirectType: https redirectStatusCode: 301 https: switch: on http2: on certInfo: certId: 'abc' # certificate: 'xxx' # privateKey: 'xxx'
查看详细配置文档 >>
四、部署
执行以下命令进行扫码授权部署:
scf deploy
注意:说明:
注意:微信扫码授权部署有过期时间,如果想要持久授权,请参考 账号配置。
五、移除
执行以下命令移除部署的服务:
·仅删除云函数相关的配置、代码。
·关联的其他云资源(如 COS、CLS 等),平台均不会关联删除,你可以前往对应产品控制台删除,避免不必要的计费。
scf remove
六、账号配置(可选)
当前默认支持 CLI 扫描二维码登录,如你希望配置持久的环境变量/密钥信息,也可以本地创建 .env 文件:
touch .env # 腾讯云的配置信息
在 .env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存:
# .envTENCENT_SECRET_ID=123TENCENT_SECRET_KEY=123
注意:说明:
七、全部配置
# serverless.ymlcomponent: cdnname: cdnDemoorg: orgDemoapp: appDemostage: devinputs: domain: abc.com area: overseas async: true onlyRefresh: false serviceType: web origin: origins: – origin.site.com originType: cos originPullProtocol: https https: switch: on http2: on certInfo: certId: 'abc' refreshCdn: urls: – https://abc.com pushCdn: urls: – https://abc.com cache: simpleCache: followOrigin: on cacheRules: – cacheType: all cacheContents: – '*' cacheTime: 1000 cacheKey: fullUrlCache: on referer: switch: on refererRules: – ruleType: all rulePaths: – '*' refererType: blacklist allowEmpty: true referers: – 'qq.baidu.com' – '*.baidu.com' ipFilter: switch: on filterType: blacklist filters: – '1.2.3.4' – '2.3.4.5' forceRedirect: switch: on redirectType: https redirectStatusCode: 301
八、CDN 配置
| 参数名称 | 是否必选 | 默认值 | 描述 |
| domain | 是 | – | CDN 域名。 |
| origin | 是 | – | 源站配置,详情见 origin。 |
| area | 否 | mainland | 域名加速区域:mainland:中国境内加速overseas:中国境外加速global:全球加速(使用中国境外加速、全球加速时,需要先开通中国境外加速服务) |
| serviceType | 否 | web | 加速域名业务类型。web:静态加速download:下载加速media:流媒体点播加速 |
| async | 否 | false | 是否为异步操作,如果为 true,则不会等待 CDN 创建或更新成功再返回。 |
| onlyRefresh | 否 | false | 是否只刷新预热 CDN,如果为 true,那么只进行刷新操作,不会更新 CDN 配置。 |
| refreshCdn | 否 | – | 刷新 CDN 相关配置,详情见 refreshCdn,如果想刷新 CDN,必须在同步部署情况下,也就是 async 必须配置为 false。 |
| pushCdn | 否 | – | 预热 CDN 相关配置,详情见 pushCdn,如果想预热 CDN,必须在同步部署情况下,也就是 async 必须配置为 false。 |
| https | 否 | – | Https 加速配置,详情见 https。 |
| cacheKey | 否 | – | 节点缓存键配置,详情见 cacheKey。 |
| cache | 否 | – | 缓存过期时间配置,详情见 cache。 |
| referer | 否 | – | 防盗链设置,详情见 referer。 |
| ipFilter | 否 | – | IP 黑白名单配置,详情见 IpFilter。 |
注意:async 参数对于配置多个 CDN 域名需求,或者在 CI 流程中时,建议配置成 true,不然会导致 serverless cli 执行超时,或者 CI 流程超时。
九、origin
详情见 文档。
| 参数名称 | 是否必选 | 默认 | 描述 |
| origins | 是 | – | 主源站列表 |
| originType | 是 | domain | 主源站类型。domain:域名类型cos:对象存储源站 |
| originPullProtocol | 是 | http | 回源协议配置。http:强制 http 回源follow:协议跟随回源https:强制 https 回源,https 回源时仅支持源站443端口 |
| serverName | 否 | – | 回主源站时 Host 头部,不填充则默认为加速域名。若接入的是泛域名,则回源 Host 默认为访问时的子域名。 |
| cosPrivateAccess | 否 | – | originType 为对象存储(COS)时,可以指定是否允许访问私有 bucket。注意:需要先授权 CDN 访问该私有 Bucket 的权限后,才可开启此配置。 |
| backupOrigins | 否 | – | 备源站列表。 |
| backupOriginType | 否 | domain | 备源站类型。domain:域名类型cos:对象存储源站 |
| backupServerName | 否 | – | 回备源站时 Host 头部,不填充则默认为加速域名。若接入的是泛域名,则回源 Host 默认为访问时的子域名。 |
十、refreshCdn
| 参数名称 | 是否必选 | 默认 | 描述 |
| urls | 否 | [] | 需要刷新的 CDN 目录 |
十一、pushCdn
| 参数名称 | 是否必选 | 默认 | 描述 |
| urls | 否 | [] | 需要预热的 CDN URLs |
更多配置,请参见 新增加速域名。