1.
准备:选择CDN服务并添加站点
操作步骤:注册你选定的CDN服务(如Cloudflare、Fastly、Akamai、腾讯云CDN、阿里云CDN等);登录控制台,选择“添加站点/域名”,输入你希望加速的域名(如www.example.com或静态子域static.example.com)。系统会返回一个CDN提供的“加速域名”或要求你在DNS中添加CNAME,注意保存该目标CNAME用于下一步。
2.
DNS 配置:创建 CNAME 指向 CDN
操作步骤:在你的域名解析服务(如DNSPod、Cloudflare DNS、域名注册商)添加CNAME记录:主机记录填写子域(如www或static),记录值填CDN提供的加速域名(如xxxxx.cdn-provider.com)。保存并等待生效(通常数分钟到24小时)。使用命令验证:nslookup www.example.com 或 dig CNAME www.example.com。
3.
Origin(源站)设置与回源协议
操作步骤:在CDN控制台配置源站地址(IP或域名)。设置回源协议为HTTP或HTTPS,推荐使用HTTPS回源以保护回源数据;如使用HTTPS回源,确保证书在源站有效或允许非验证(仅在可信环境下)。设置Origin Host Header为你的原始主机头(如origin.example.com或www.example.com)。如原站有防火墙,请允许CDN回源IP。
4.
缓存规则详解:按路径、扩展名和Header配置
操作步骤:进入“缓存/规则”配置页,按优先级添加规则:
- 静态资源规则:匹配路径后缀(.css,.js,.jpg,.png,.woff) -> 缓存TTL设置为天/周;开启Ignore Query String(或按需开启);设置Cache-Control和Expires头。
- 动态接口规则:匹配/api/*或动态页面 -> 缓存关闭或设置短TTL(如0或60s),并选择“忽略缓存、直接回源”。
- 登录/购物车等带Cookie页面:根据Cookie匹配绕过缓存。
注意规则顺序,最具体的放前面;并测试缓存命中与未命中。
5.
缓存刷新与预热(Purge/Prefetch)
操作步骤:当资源更新后使用CDN控制台的“刷新/清除缓存”功能,支持按URL、目录或按缓存标签(tag)清除。对于大量更新,优先按目录或tag清除避免频繁回源。可使用CDN提供的预热接口把常用资源提前拉取到边缘节点,减少首次回源延迟。
6.
边缘配置:压缩、Header与安全策略
操作步骤:开启Brotli或Gzip压缩;配置边缘响应头覆盖(如强制添加Cache-Control、X-Frame-Options、Content-Security-Policy等);设置CORS规则允许域名;若需要自定义边缘重写/重定向,可在控制台或边缘脚本功能中添加规则,实现URL重写、301/302跳转或添加安全头。
7.
HTTPS证书:自动托管与手动上传的两种方式
操作步骤(自动托管):在CDN控制台启用“自动证书管理/Let’s Encrypt”,填写域名,CDN会自动申请并托管证书,通常支持自动续期。
操作步骤(手动上传):在本地生成私钥和CSR(示例命令):
- 生成私钥:openssl genrsa -out private.key 2048
- 生成CSR:openssl req -new -key private.key -out csr.pem -subj "/CN=www.example.com/O=你的公司/C=CN"
向CA提交csr.pem获取证书后,在CDN控制台上传证书(cert.pem)和私钥(private.key),并选择对应的域名绑定。
8.
HTTPS 强制与 HSTS 配置
操作步骤:在CDN控制台开启“HTTP->HTTPS 重定向”,选择301或302。配置HSTS头部:严格传输安全Header(例:Strict-Transport-Security: max-age=31536000; includeSubDomains; preload)注意:启用preload前请确认所有子域都支持HTTPS,否则会造成访问问题。
9.
调试与验证:命令与在线工具
操作步骤:常用检查命令:
- curl -I https://www.example.com 查看响应头和证书信息;
- curl -I -H "Host: www.example.com" https://CDN加速域名 检查Host行为;
- openssl s_client -connect www.example.com:443 -servername www.example.com 查看证书链;
还可以用SSL Labs(Qualys)检测HTTPS配置,用浏览器开发者工具查看缓存命中(x-cache、age、via等Header)。
10.
常见问题与解决方法
常见问题与处理:
- 资源仍从回源加载:检查是否为绕过缓存规则或Cache-Control:no-cache;
- 404/403:确认Origin Host Header、回源IP白名单和路径权限;
- 证书错误:确认证书域名包含访问域、证书链完整、私钥与证书匹配;
- 混合内容:页面HTTPS但资源http -> 强制CDN或页面引用HTTPS链接。
11.
优化建议与监控
建议:利用CDN统计与日志监控命中率、回源带宽和响应时间;根据热点资源设置更长TTL并预热;对API使用短TTL并利用Cache-Control的s-maxage为CDN设置专用过期策略;设置告警在回源错误率升高时触发。
12.
问:如何只对某个目录(如/images)启用长时间缓存而其它页面不缓存?
答:在CDN缓存规则中添加一条优先级最高的规则:匹配路径前缀 /images/*,设置TTL为较长时间(如30天)、允许缓存query string或忽略query;然后再添加一条默认规则对其它路径设置短TTL或绕过缓存。保存并测试访问某个图片URL,查看响应头Cache-Control或x-cache确认命中。
13.
问:使用CDN自动托管证书安全吗?如何保证续期不中断?
答:CDN自动托管(如Let’s Encrypt或CDN自有CA)通常非常安全,CDN会替你完成域名验证与证书续期。保证续期不中断的方法:确保域名DNS解析正常且CNAME指向未被篡改;不要在自动续期时删除验证记录;开启CDN的自动证书续期功能并监控证书到期提醒。
14.
问:如何在出现缓存失效或回源压力大时快速恢复?
答:第一时间使用CDN控制台的按URL或按前缀的“强制清除/刷新”功能精确清除更新资源,避免全量刷新造成回源风暴;对大量更新采用分批刷新或设置短期缓存并预热;如回源压力大可启用回源限流/回源备份或临时提高边缘缓存TTL并在源站进行维护窗口。
来源:图文教程介绍cdn网站设置从缓存规则到HTTPS证书配置的全流程讲解