Cloudflare免费CDN加速网站的正确姿势

Cloudflare 能帮你做什么

Cloudflare 的免费套餐已经非常强大了:

  • CDN 加速:全球节点缓存静态资源
  • DDoS 防护:自动拦截恶意流量
  • 免费 SSL:一键开启 HTTPS
  • DNS 解析:速度快,还能隐藏源站 IP

接入步骤

1. 注册并添加站点

dash.cloudflare.com 注册账号,添加你的域名。选 Free 计划就够了。

2. 修改 NS 记录

Cloudflare 会给你两个 NS 服务器地址,去你的域名注册商那里把 NS 记录改过去。生效时间通常几分钟到几小时不等。

3. DNS 记录配置

添加 A 记录指向你的服务器 IP。注意那个橙色云朵图标:

  • 开启(橙色):流量经过 Cloudflare,有 CDN 和防护
  • 关闭(灰色):仅 DNS 解析,直连源站

建议 Web 服务开启代理,SSH 等非 HTTP 服务关闭代理。

4. SSL/TLS 设置

推荐设置为 Full (Strict)。这要求源站也有有效的 SSL 证书。可以用 Cloudflare 的 Origin Certificate(免费15年)。

1
2
3
4
5
6
7
8
# Nginx 配置 Cloudflare Origin Certificate
server {
listen 443 ssl;
server_name example.com;

ssl_certificate /etc/ssl/cloudflare-origin.pem;
ssl_certificate_key /etc/ssl/cloudflare-origin-key.pem;
}

性能优化技巧

缓存规则

默认情况下 Cloudflare 只缓存静态文件(js/css/图片)。如果你是静态博客,可以创建 Page Rule:

1
2
3
URL: example.com/*
设置: Cache Level = Cache Everything
Edge Cache TTL = 1 month

开启 Brotli 压缩

Speed → Optimization → 开启 Brotli。比 gzip 压缩率更高,现代浏览器都支持。

Rocket Loader

如果你的页面 JS 很多,可以试试开启 Rocket Loader。它会异步加载 JS,提升首屏速度。不过有些脚本可能不兼容,需要测试。

常见问题

Q:接入后网站打不开了?

A:检查 SSL 模式。如果源站没有 SSL 证书,先设为 Flexible(不推荐长期使用)。

Q:源站 IP 被泄露了怎么办?

A:换 IP,然后确保所有 DNS 记录都开启代理。检查是否有历史 DNS 记录被扫描工具收录。

Q:国内访问速度反而变慢了?

A:Cloudflare 免费版的亚洲节点有限。可以考虑用 CNAME 接入方式,或者国内用户走直连、海外走 CF。

进阶:Workers 和 Pages

Cloudflare Workers 可以在边缘节点运行 JavaScript,适合做:

  • URL 重写和重定向
  • A/B 测试
  • API 网关

Cloudflare Pages 可以直接部署静态站点,连 GitHub 仓库后自动构建,比自己搭服务器还方便。

总结

Cloudflare 免费版对个人站长来说已经足够了。接入简单,效果明显。唯一的缺点是国内访问速度不稳定,但对于面向全球的站点来说,它是最佳选择。