1. 概述与准备工作
1) 目标:快速将站点通过CDN接入,提高访问速度并增强DDoS抵抗能力。
2) 前提条件:已有域名、能够登录域名解析控制台、可访问VPS/主机(如ssh)。
3) 建议环境:VPS示例:Ubuntu 22.04,2 vCPU,4GB 内存,80GB SSD,公网带宽1Gbps。
4) 需要准备的信息:源站公网IP(示例:198.51.100.10)、域名(example.com)及DNS登录凭据。
5) 其他:若使用自签或免费证书,可准备Let's Encrypt;记录回源端口(HTTP 80 / HTTPS 443)。
2. 选择CDN与下载客户端/工具
1) 选择要点:全球PoP覆盖、是否提供Web应用防火墙(WAF)、DDoS清洗能力和价格。
2) 常见选项:商业(Cloudflare/阿里云/腾讯云/Fastly)或开源边缘代理(如BunnyCDN、KeyCDN)。
3) 下载方式:大多数CDN无需本地“下载”,而是通过控制台配置;若使用边缘加速软件,可从官网获取Linux二进制或apt/yum源安装包(示例命令:sudo apt install cf-client)。
4) 本地工具:准备curl、dig、openssl用于验证;示例安装:sudo apt update && sudo apt install -y curl dnsutils openssl。
5) 获取凭证:在CDN控制台创建站点,记录提供的CNAME或A记录以及API Key(用于自动化)。
3. 域名与DNS接入(具体步骤)
1) 两种接入模式:CNAME接入(推荐子域如 www.example.com 指向 CDN 提供的域名)或A记录接入(将域名解析到CDN边缘IP)。
2) 示例DNS设置:
- example.com A 198.51.100.10 (根域保留为回源)
- www.example.com CNAME
cdn123.provider.net. (在控制台接入后添加)
3) TTL建议:初期设置为300秒,调试后可增大到3600或更高以减少解析查询。
4) 验证方法:使用 dig +short www.example.com 和 curl -I https://www.example.com 检查返回头是否包含CDN标识(如via或server字段)。
5) 注意:若使用A记录并隐藏源站IP,需在源站防火墙中只允许CDN回源IP段访问,示例防火墙规则:仅允许 203.0.113.0/24 回源到198.51.100.10:443。
4. 基础配置项与参数说明
1) SSL/HTTPS:推荐在CDN启用托管证书(自动签发),回源可使用HTTPS并校验证书;回源模式可选“完整(验证)”或“简单(不验证)”。
2) 缓存策略:设置静态资源缓存 TTL(示例:CSS/JS/图片 7天=604800秒),动态页面可设置 no-cache 或短TTL(60-300秒)。
3) 回源配置:回源协议、回源主机头(Host 设置为 example.com)和回源端口(80/443),示例回源Host header:Host: example.com。
4) 压缩与内容优化:开启GZIP/ Brotli,示例规则:text/html text/css application/javascript 开启Brotli,压缩比可提升30%-60%。
5) DDoS与WAF:设置速率限制(如每IP每秒10个连接),启用自动DDoS清洗与WAF规则集(OWASP规则),并记录触发日志便于调整。
5. 验证与性能对比(数据演示)
1) 基准测试项:首字节延迟(TTFB)、总加载时间、带宽吞吐、缓存命中率、丢包率。
2) 测试工具:curl -w,ab 或 wrk,ping/traceroute,以及第三方测速(GTmetrix)。
3) 示例对比表(同一页面,在中国大陆节点测试):
| 指标 |
未启用CDN |
启用CDN后 |
| TTFB (ms) |
420 |
68 |
| 首屏加载 (ms) |
1800 |
520 |
| 带宽峰值 (Mbps) |
120 |
650(边缘缓存) |
| 缓存命中率 (%) |
0 |
86 |
4) 验证命令示例:curl -I -s https://www.example.com | grep -i via 查看是否经过CDN;curl -w "%{time_starttransfer}\n" -o /dev/null -s https://www.example.com 测量TTFB。
5) 调优建议:若命中率低,检查Cache-Control头;若回源压力高,提升静态TTL并使用Edge Cache。
6. 真实案例与服务器配置示例
1) 案例概述:某中小型电商(origin 198.51.100.10)在促销期间遭遇每秒数万连接,启用CDN+WAF后峰值流量由CDN承接,源站带宽使用由800Mbps下降至40Mbps。
2) 源站Nginx基础配置示例(关键项):server_name example.com; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr。
3) 防火墙示例(只允许CDN回源IP段访问):iptables -A INPUT -p tcp -s 203.0.113.0/24 --dport 443 -j ACCEPT; iptables -A INPUT -p tcp --dport 443 -j DROP。
4) 监控与日志:在CDN控制台查看边缘日志(请求/响应代码、带宽、攻击拦截数),在源站启用完整访问日志并按天轮转。示例日志条目:203.0.113.5 - - [05/Apr/2026:12:00:00 +0000] "GET /index.html HTTP/1.1" 200 10245。
5) 总结与建议:新手先用控制台向导完成CNAME接入、开启TLS和基础缓存规则;上线后通过dig/curl验证并观察缓存命中率与回源流量,逐步打开WAF和速率限制以防DDoS。