网站CDN加速配置教程

网站CDN加速配置教程

CDN加速的核心原理就是把静态资源缓存到离用户最近的节点,减少源站压力,降低延迟。这篇笔记记录我配置CDN的全过程,用的是雨云CDN,性价比高,配置起来也省心。

什么资源需要CDN

静态资源:图片、CSS、JS、字体文件、视频、PDF下载包。
动态接口:不要走CDN,除非你用了边缘计算做API聚合,否则动态请求缓存会拿不到实时数据。

前置条件

– 一个已备案的域名(国内CDN必须备案)
– 源站服务器(我用的雨云,稳定,延迟低)
– 域名DNS解析权限(在域名注册商控制台)

配置步骤

1. 在CDN控制台添加域名

登录雨云控制台,找到CDN产品,点击添加域名。

填写你的域名,比如 `static.yourdomain.com`。源站配置填你的服务器IP或域名,端口默认80/443。如果源站是HTTPS,勾选回源协议跟随。

回源HOST一般填源站域名,如果源站有多个站点,需要填对应的Host头。

2. 配置缓存规则

默认规则是全部缓存,但需要区分文件类型。

# 图片/字体 - 长缓存30天
*.jpg, *.png, *.webp, *.woff2  -> 缓存30天
# CSS/JS - 缓存7天,带版本号可以更长
*.css, *.js  -> 缓存7天
# HTML - 不缓存或短缓存(如果SSR页面)
*.html -> 缓存0秒 或 遵循源站Cache-Control

操作:在缓存配置页面,新建规则,填写文件后缀,设置过期时间。优先级高的规则会覆盖低的。

3. HTTPS配置

强制HTTPS访问。在CDN控制台找到SSL证书管理。
– 如果你有证书文件,直接上传(Nginx格式:crt + key)。
– 没有证书,用雨云的免费证书,自动申请和续期。

开启“强制HTTPS重定向”,这样用户访问HTTP会自动跳转到HTTPS。

4. 回源配置

回源超时时间设为10秒,重试次数2次。如果源站偶尔503,可以开启“回源重试”和“回源跟随301/302”。

如果源站IP会变,用源站域名回源,CDN会自动解析。

5. 缓存预热

上线前把热门资源提前缓存到节点。

在控制台找到预热功能,输入资源URL列表,每行一个。

https://static.yourdomain.com/css/app.css
https://static.yourdomain.com/js/bundle.js
https://static.yourdomain.com/images/logo.png

预热需要时间,大文件提前一天预热。

DNS解析切换

在域名注册商把 `static.yourdomain.com` 的CNAME记录指向雨云给的CDN域名(类似 `xxx.cdn.rainyun.com`)。

TTL设小一点(600秒),方便回滚。等CDN配置生效(一般5-10分钟),再用dig命令验证:

dig static.yourdomain.com CNAME

如果返回了CDN域名,说明解析生效。

源站Nginx配置调整

源站需要放行CDN节点IP,否则CDN回源会被拦截。获取雨云CDN节点IP列表(控制台有),加到Nginx白名单。

# 只允许CDN节点和本地访问
allow 103.x.x.x/24;
allow 123.x.x.x/24;
deny all;

同时开启真实IP透传,CDN默认会在请求头加 `X-Forwarded-For`,Nginx要读取这个头记录真实用户IP。

set_real_ip_from 103.x.x.x/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

测试加速效果

用curl测试,注意带CDN节点IP的Header。

# 查看响应头,看是否有CDN相关字段
curl -I https://static.yourdomain.com/css/app.css

# 看是否命中CDN缓存
curl -H "X-Forwarded-For: 8.8.8.8" -I https://static.yourdomain.com/images/logo.png

响应头里如果出现 `X-Cache: HIT` 或者 `X-Cache-Lookup: Hit From Cloud` 之类的字段,说明缓存命中。

用在线工具测不同地区的延迟,对比加速前后的响应时间。一般国内主要城市延迟能降到20ms以内。

常见问题排查

– 缓存不生效:检查缓存规则优先级,确认没有设置“不缓存”的规则覆盖了。
– 部分用户访问慢:查看CDN日志,看用户请求被调度到了哪个节点,可能节点覆盖不全,联系雨云客服加节点。
– 源站带宽暴增:检查是否缓存规则漏配,动态请求被回源了。临时办法:在源站Nginx限速。
– HTTPS证书报错:检查证书链是否完整,有的CDN需要上传中间证书,用SSL测试工具检查。

回滚方案

如果CDN出问题,最快的方式是把DNS的CNAME记录改回源站IP。TTL设小就是为了这个。同时关闭CDN控制台的“强制HTTPS”,避免回滚后证书不匹配。

雨云CDN控制台有“一键关闭”功能,紧急情况下直接停用CDN,所有流量直接回源。

说一句

CDN配置不复杂,但缓存规则和HTTPS证书是容易踩坑的地方。先灰度测试,用子域名跑CDN,稳定了再切主域名。雨云的工单响应快,遇到问题直接找他们查节点状态。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容