CDN(内容分发网络)可以让网站在全国各地甚至全球都打开很快,同时隐藏真实IP、提供DDoS防护、节省服务器带宽。这篇教程教你选择和配置免费CDN,新手也能轻松上手。
一、CDN概述
CDN(Content Delivery Network,内容分发网络)是一组分布在全球各地的服务器节点,将网站的静态资源(图片、CSS、JS、视频等)缓存到离用户最近的节点,用户访问时从最近的节点获取资源,从而加快访问速度。
• 加速访问:用户从最近的节点获取资源,延迟低、速度快
• 隐藏真实IP:域名解析到CDN节点,攻击者看不到源站IP,减少被攻击风险
• DDoS防护:CDN有大量节点和带宽,分布式攻击被分散,提供基础DDoS防护
• 节省服务器带宽:静态资源从CDN节点返回,不占用源站带宽,降低服务器费用
• 高可用性:源站故障时,CDN可以返回缓存内容,网站不会完全打不开
• 免费SSL:很多CDN提供免费SSL证书,一键开启HTTPS
• WAF防护:部分CDN提供Web应用防火墙,拦截SQL注入、XSS等攻击
• CDN主要加速静态资源,动态内容(如PHP页面)还是需要回源获取
• 配置CDN后,源站IP一定要隐藏,只允许CDN回源IP访问80/443
• 缓存规则要设置合理,动态页面不要缓存,静态资源可以长时间缓存
• 更新网站内容后,需要在CDN刷新缓存,否则用户看到的是旧内容
• 国内CDN需要域名备案才能使用(Cloudflare不需要备案,但国内速度一般)
• CDN不是万能的,源站速度慢、程序差,用了CDN也快不了多少
二、CDN服务选择与对比
| CDN服务 | 免费额度 | 国内速度 | 需要备案 | DDoS防护 | 特点 | 推荐度 |
|---|---|---|---|---|---|---|
| Cloudflare | 免费版无限流量 | 一般(免费版无国内节点) | 不需要 | 免费无限防护 | 全球最大CDN,功能强,免费版功能够用 | ⭐⭐⭐⭐⭐ |
| 七牛云 | 10GB/月流量+10GB存储 | 好 | 需要 | 基础防护 | 国内速度好,存储+CDN一体,小站免费够用 | ⭐⭐⭐⭐ |
| 又拍云 | 认证后有免费额度 | 好 | 需要 | 基础防护 | 国内速度好,服务好,功能丰富 | ⭐⭐⭐⭐ |
| 阿里云CDN | 新用户有免费额度 | 很好 | 需要 | 基础防护(高防另购) | 节点多,稳定,和阿里云生态配合 | ⭐⭐⭐⭐ |
| 腾讯云CDN | 新用户有免费额度 | 很好 | 需要 | 基础防护 | 和腾讯云配合好,费用低 | ⭐⭐⭐⭐ |
| 百度云加速 | 免费版 | 好 | 需要 | 基础防护 | 国内速度好,和百度搜索配合 | ⭐⭐⭐ |
| Cloudflare Partner | 部分合作伙伴免费 | 好(有国内节点) | 不需要 | 有 | Cloudflare合作版,有国内节点,速度比免费版好 | ⭐⭐⭐⭐ |
• 纯新手/不想备案/国外访客多:Cloudflare免费版,注册即用,不需要备案,功能强大
• 国内网站/已备案/追求国内速度:七牛云或又拍云,有免费额度,国内速度好
• 阿里云/腾讯云服务器用户:可以用同服务商的CDN,内网回源不花流量费
• 重要商业网站:阿里云/腾讯云CDN + 高防IP,稳定可靠有保障
• 组合方案:Cloudflare做DNS和安全防护 + 国内CDN做加速(需要配置),兼顾安全和速度
三、Cloudflare免费CDN配置
Cloudflare是最推荐新手使用的CDN,免费版功能强大,不需要备案,注册即用。
- 注册账号:
- 访问 Cloudflare官网(cloudflare.com),点击"Sign Up"注册
- 用邮箱注册,设置密码
- 登录后进入控制台
- 添加网站:
- 点击"Add a Site"(添加站点)
- 输入你的域名(如 example.com,不需要加www)
- 点击"Continue"
- 选择套餐:选"Free"(免费版),点击"Continue"
- 检查DNS记录:
- Cloudflare会自动扫描你域名现有的DNS记录
- 检查记录是否完整(A记录、CNAME、MX邮件记录等)
- 确保网站的A记录或CNAME记录的代理状态是"已代理"(橙色云朵图标,Proxied)
- 如果有遗漏的记录,手动添加
- 点击"Continue"
- 修改域名DNS服务器:
- Cloudflare会给你分配两个DNS服务器地址(如 xxx.ns.cloudflare.com)
- 登录你的域名注册商(阿里云、腾讯云、Namesilo等)
- 找到域名的DNS服务器(NS)设置
- 将默认的DNS服务器改为Cloudflare提供的两个
- 保存设置
- 回到Cloudflare,点击"Done, check nameservers"
- 等待DNS生效(几分钟到几小时,最长48小时)
- 生效后Cloudflare会发邮件通知,状态变为"Active"
- 配置SSL/TLS:
- 进入"SSL/TLS" → "概述"
- 加密模式选择"完整"(Full)或"完整(严格)"(Full (strict))
- 如果源站有有效的SSL证书,选"完整(严格)";如果源站没有证书或用自签名证书,选"完整"
- 进入"边缘证书",开启"始终使用HTTPS"(Always Use HTTPS)
- 开启"自动HTTPS重写"(Automatic HTTPS Rewrites)
- Cloudflare会自动为你的域名签发免费SSL证书(Universal SSL),等待签发(几分钟到24小时)
- 配置缓存规则:
- 进入"缓存" → "配置"
- 缓存级别选择"标准"(Standard)
- 浏览器缓存TTL选择"4小时"或更长
- 进入"规则" → "页面规则"(Page Rules),免费版可以创建3条规则
- 建议创建的规则:
- 后台地址(如 *example.com/wp-admin/*):缓存级别=绕过(Bypass),安全=高
- 静态资源(如 *example.com/wp-content/*):缓存级别=缓存所有,边缘缓存TTL=1个月
- 首页(如 example.com/):缓存级别=标准,边缘缓存TTL=2小时
- 配置安全功能:
- 进入"安全" → "设置",安全级别选择"中"(Medium)
- 开启"Bot Fight Mode"(机器人对抗模式),免费功能
- 进入"安全" → "WAF",可以创建自定义防火墙规则(免费版5条)
- 常用规则:拦截特定国家IP、拦截异常User-Agent、限制后台访问IP等
- 配置速度优化:
- 进入"速度" → "优化"
- 开启"Auto Minify"(自动压缩):勾选JavaScript、CSS、HTML
- 开启"Brotli"压缩
- "Rocket Loader"可以开启(异步加载JS,可能影响部分功能,有问题就关掉)
- 开启"自动平台优化"(APO,针对WordPress,需要安装Cloudflare插件)
- 测试验证:
- 等待DNS生效和SSL签发后,访问网站测试
- 用 https://www.whatsmydns.net/ 检查DNS解析是否指向Cloudflare
- 用浏览器开发者工具查看响应头,是否有 cf-cache-status 字段(说明经过Cloudflare)
- 测试网站所有功能是否正常(登录、评论、搜索等动态功能)
- 测试HTTP是否自动跳转到HTTPS
• Under Attack Mode(我已受到攻击模式):被DDoS攻击时开启,增加JS验证,防护更强
• Purge Cache(清除缓存):更新网站内容后,在这里清除缓存,用户才能看到新内容
• Analytics(分析):查看网站流量、缓存命中率、安全事件等数据
• Workers:边缘计算,可以写JS在Cloudflare节点运行(免费版每天10万次请求)
• Pages:静态网站托管,可以直接部署静态网站
• 1.1.1.1:Cloudflare的公共DNS,也可以用
四、七牛云CDN配置
七牛云国内速度好,有10GB/月免费流量,适合国内小网站。需要域名备案。
- 注册账号:访问七牛云官网(qiniu.com),注册账号并完成实名认证(个人认证即可)
- 创建存储空间:
- 进入"对象存储Kodo" → "新建存储空间"
- 存储空间名称:自定义(如 my-static),全局唯一
- 存储区域:选择离你服务器近的区域(如华东-浙江)
- 访问控制:公开(静态资源需要公开访问)
- 点击"确定创建"
- 绑定域名:
- 进入存储空间 → "域名管理" → "绑定自定义域名"
- 输入你的CDN域名(如 static.example.com,建议用子域名做CDN)
- 通信协议:选择HTTPS(需要SSL证书,可以用七牛云免费证书或上传自己的)
- 点击"确定创建"
- 七牛云会给你一个CNAME地址(如 xxx.clouddn.com)
- 到你的DNS管理处,添加CNAME记录:static.example.com → 七牛云提供的CNAME地址
- 等待DNS生效和CDN配置完成(几分钟到几小时)
- 配置回源(如果是整站CDN):
- 如果只是加速静态资源,把图片/CSS/JS上传到七牛云存储空间,用CDN域名访问即可
- 如果是整站CDN(动态内容也走CDN),需要配置回源:
- 进入"CDN" → "域名管理" → 找到你的域名 → "源站配置"
- 源站类型:源站域名或IP
- 源站地址:你的源站域名或服务器IP
- 回源协议:HTTPS(如果源站有SSL)
- 保存配置
- 配置缓存规则:
- 进入CDN域名管理 → "缓存配置"
- 静态资源(jpg、png、css、js等):缓存时间设置30天或更长
- HTML页面:缓存时间设置几分钟到几小时(动态内容不要缓存太久)
- 后台、登录页等动态页面:不缓存(缓存时间0)
- 可以按文件后缀或路径配置不同的缓存规则
- HTTPS配置:
- 进入CDN域名管理 → "HTTPS配置"
- 开启HTTPS,上传SSL证书(可以在七牛云申请免费证书,或用自己的证书)
- 开启HTTP强制跳转HTTPS
- 开启HTTP/2
- WordPress配置(如果用WordPress):
- 如果只是静态资源用CDN,安装CDN插件(如WP Super Cache、W3 Total Cache)
- 在插件中设置CDN域名(static.example.com),静态资源会自动替换为CDN地址
- 如果是整站CDN,不需要插件,域名直接解析到CDN即可
- 测试验证:
- 访问CDN域名,测试资源是否正常加载
- 用浏览器开发者工具查看响应头,是否有七牛云CDN的标识(如X-Cache、Server: Qiniu)
- 测试网站所有功能是否正常
- 在七牛云控制台查看流量和带宽使用情况
五、又拍云CDN配置
又拍云和七牛云类似,国内速度好,认证后有免费额度,服务好。配置流程也类似。
- 注册又拍云账号(upyun.com),完成实名认证,领取免费额度
- 创建云存储服务(又拍云叫"服务"),设置服务名称、存储区域、访问权限
- 绑定域名,添加CNAME记录到又拍云提供的地址
- 配置HTTPS(又拍云提供免费SSL证书,一键申请)
- 配置缓存规则(静态资源长缓存,动态页面短缓存或不缓存)
- 如果是整站CDN,配置回源地址(源站域名或IP)
- WordPress安装CDN插件,配置CDN域名
- 测试验证,查看流量统计
• 又拍云的"又拍云联盟"活动:在网站底部放置又拍云链接,可以获得每月免费额度(存储+流量)
• 又拍云有FTP功能,可以像FTP一样上传文件到云存储
• 又拍云的图片处理功能强(缩略图、水印、格式转换等,URL参数即可实现)
• 又拍云客服响应快,有问题可以提交工单或在社区提问
• 又拍云的CDN节点覆盖国内主要城市,速度稳定
六、CDN优化与常见问题
- 合理设置缓存时间:
- 静态资源(图片、CSS、JS、字体、视频):缓存30天到1年,这些文件很少变
- HTML页面:缓存几分钟到几小时,平衡速度和更新及时性
- 动态页面(后台、登录、搜索、购物车):不缓存
- 更新内容后,手动刷新CDN缓存(Purge Cache),让用户立即看到新内容
- 静态资源分离:
- 用独立的子域名(如static.example.com)存放静态资源
- 静态资源只走CDN,动态内容直接访问源站或单独配置
- WordPress用插件自动替换静态资源URL为CDN地址
- 开启压缩和优化:
- 开启Gzip/Brotli压缩(CDN和源站都开启)
- 开启HTML/CSS/JS自动压缩(Minify)
- 图片用WebP格式,CDN可以自动转换(部分CDN支持)
- 开启HTTP/2,提升并发加载速度
- 隐藏源站IP:
- 接入CDN后,服务器防火墙只允许CDN回源IP访问80/443端口
- 不要用源站IP直接访问网站
- 服务器发邮件用第三方邮件服务,不要直接发(邮件头会泄露IP)
- 如果之前直接解析过IP,建议换服务器IP
- 监控CDN效果:
- 定期查看CDN控制台的流量、带宽、缓存命中率
- 缓存命中率应该 > 80%,如果低说明缓存规则不合理
- 用测速工具(如站长工具测速、17ce.com)测试全国各地访问速度
- 用PageSpeed Insights测试网站性能评分
- 成本控制:
- 监控流量使用,避免超出免费额度产生费用
- 大文件(视频、安装包)可以考虑用对象存储+CDN,或单独的下载服务
- 防止盗链:配置Referer防盗链,只允许自己的域名引用资源
- 防止恶意刷流量:CDN的WAF和速率限制可以防护
• 网站打不开/502错误:检查源站是否正常、CDN回源配置是否正确、源站防火墙是否允许CDN回源IP
• 内容不更新:CDN缓存了旧内容,在CDN控制台刷新缓存(Purge Cache)
• HTTPS证书错误:检查CDN的SSL证书是否有效、是否匹配域名、是否过期
• 后台登录不了:后台页面被缓存了,配置页面规则绕过缓存(Bypass)
• 评论不显示:评论是动态内容,页面被缓存了,用AJAX加载评论或缩短缓存时间
• 速度没提升:检查是否真的走了CDN(响应头有CDN标识)、缓存命中率是否高、源站速度是否太慢
• 图片不显示:检查CDN域名是否正确、资源是否上传、防盗链是否拦截了
• 流量异常高:可能被盗链或恶意刷流量,开启防盗链和WAF,查看CDN日志找异常IP