为什么要用 CDN
CDN(内容分发网络)将静态资源缓存到离访客更近的边缘节点,降低延迟、分担源站压力、提升抗 DDoS 能力。对 DMIT 云服务器上的站点,结合 Cloudflare 之类的 CDN 是常见的加速与防护方案。本文介绍把 DMIT 作为源站、Cloudflare 作为边缘的配置方法。
架构与前提
- DMIT 服务器已配置 HTTPS(见《HTTPS/SSL 配置》)
- 域名 DNS 可托管到 Cloudflare
- 源站仅对 Cloudflare 回源 IP 开放 443(可选,增强安全)
添加站点到 Cloudflare
- 在 Cloudflare 添加域名,按提示修改域名 NS 为 Cloudflare 提供的地址
- 等待 DNS 生效(通常几分钟到几小时)
- 添加 A 记录指向 DMIT 服务器 IP,代理状态设为"已代理"(橙色云朵)
SSL/TLS 模式
Cloudflare 与源站之间也需要加密。推荐模式:
| 模式 | 说明 | 适用 |
|---|---|---|
| Flexible | 访客→CF 加密,CF→源站明文 | 源站无 HTTPS(不推荐) |
| Full | 两端均加密,但不校验证书 | 源站自签证书 |
| Full (strict) | 两端加密且校验证书 | 源站有有效证书(推荐) |
选择 Full (strict) 并要求源站使用有效 Let's Encrypt 证书(见《HTTPS/SSL 配置》)。
缓存规则
# 缓存静态资源(Cloudflare 规则示例)
URL 匹配: example.com/static/*
设置: Cache Level = Cache Everything, Edge TTL = 1 month
# 动态内容不缓存
URL 匹配: example.com/api/*
设置: Cache Level = Bypass
对登录态页面设置 Cache-Control: private 或 Bypass,避免缓存用户数据。
源站防火墙(仅允许 Cloudflare 回源)
通过防火墙只放行 Cloudflare 的 IPv4/IPv6 回源段,降低源站暴露面:
# 示例:只允许 Cloudflare 段访问 443(需随官方列表更新)
ufw allow from 173.245.48.0/20 to any port 443
ufw allow from 103.21.244.0/22 to any port 443
ufw deny 443
Cloudflare 回源 IP 段会变动,建议用官方 API 定期同步。更多安全加固见《SSH 安全加固》。
性能与 SEO 收益
- 静态资源就近返回,首字节时间(TTFB)下降
- 源站带宽消耗降低,利于《成本优化》
- 免费套餐即带基础 DDoS 防护与 HTTPS
常见问题
缓存导致更新不生效?
在 Cloudflare 控制台对对应 URL 执行"清除缓存",或给静态资源加版本号(app.v2.js)。
真实访客 IP 丢失?
在 Nginx 中启用 real_ip 模块读取 CF-Connecting-IP 头,恢复真实客户端 IP(用于日志与限流)。
相关文章
《HTTPS/SSL 配置》、《性能调优指南》、《初次部署检查清单》。
本文核对日期:2026-08-18。