cloudflare的作用
Cloudflare 是一个全球网络平台,它不托管你的网站,而是作为你和用户之间的 “ 智能中间层 “(技术上称为反向代理)。它横亘在你的源服务器(Origin Server)和全球访客之间,旨在让你的网站、API 或应用变得 更快、更安全、更可靠。
Cloudflare 就像是你网站的 “ 全球智能前台与安保团队 “。
- 安保:它会盘查所有访客,把恶意机器人、黑客攻击(如 DDoS)挡在门外。
- 前台/礼宾:对于常规访客,它会从离访客最近的 “ 储物柜 “(缓存)里直接提供访客要的资料(如图片、CSS 文件),而无需每次都麻烦你(源服务器),从而极大提升访问速度。
特性/概念 | Cloudflare | 传统 CDN (如 KeyCDN, BunnyCDN) | 云服务商 CDN (如 AWS CloudFront) |
---|---|---|---|
核心定位 | 一体化的安全与性能平台 | 专注内容分发加速 | 云生态内的内容分发网络 |
工作模式 | 通常接管整个域名的 DNS (反向代理模式) | 通过修改特定 URL (cdn.yourdomain.com ) 来加速静态资源 | 与云服务(S3, EC2)深度集成,配置灵活但更复杂 |
安全能力 | 非常强大且易于使用。内置顶级的 DDoS 防护、WAF、Bot 管理 | 通常只有基础的 DDoS 防护,或需额外购买 WAF 服务 | 提供强大的 WAF 和 Shield 等服务,但通常是独立计费且配置复杂 |
易用性 | 极易上手,5 分钟即可完成基本配置 | 同样比较简单,专注于资源加速配置 | 学习曲线较陡峭,需要对 AWS/GCP/Azure 生态有深入了解 |
典型场景 | 保护和加速整个网站/应用,包括动态和静态内容 | 只加速网站的静态资源(图片、JS、CSS) | 深度依赖特定云服务商,用于加速云上的应用和数据 |
1. 介绍
Cloudflare 的魔法始于一个简单的动作:接管你域名的 DNS 解析。
- DNS 接管 (The Handover):你将你域名的
NS
(Name Server) 记录指向 Cloudflare 的服务器。这是整个流程的入口。从此,所有对你域名的解析请求都由 Cloudflare 来应答。 - Anycast 网络 (The Magic Routing):Cloudflare 使用 Anycast 技术。当用户请求你的网站时,他们不会被指向你服务器的真实 IP,而是被指向 Cloudflare 全球 300+ 个数据中心(称为 PoP - Point of Presence)中离他们网络距离最近的那一个。
- 边缘处理 (The Edge Logic):请求到达 Cloudflare 的边缘节点 (PoP) 后,会经过一系列处理:
- 安全过滤:WAF 检查请求是否包含 SQL 注入、XSS 等攻击特征;DDoS 防护系统会丢弃恶意流量。
- 缓存服务:检查请求的资源(如图片、JS、CSS)是否已缓存在这个节点。如果命中缓存,则直接从边缘返回给用户,不再访问你的源服务器。这是其 CDN 功能的核心。
- 规则引擎:执行你配置的各种规则,例如页面重定向、Header 修改、图片优化等。
- 连接源站 (The Origin Pull):如果缓存未命中或请求的是动态内容(如用户登录),Cloudflare 会将这个 “ 干净 “ 的请求,通过其优化的内部网络,转发到你的源服务器。重要的是,外界永远无法直接看到你源服务器的真实 IP 地址,它被 Cloudflare 保护起来了。
- 响应返回 (The Return Trip):源服务器的响应会先回到 Cloudflare 的边缘节点,节点会根据你的设置决定是否缓存这次的响应内容,然后再将其返回给用户。
1.1 域名 DNS 解析 CloudFlare
阿里云的域名 DNS 可以配置 CloudFlare 的,后面解析都可以在 CloudFlare 上操作了。
这样就可以解决 vercel 的被墙的问题了。
1 | waline cname.vercel-dns.com 走代理模式 |
测试是否走了 cloudflare
1 | curl -I https://waline.liuvv.com/ (只获取 HTTP 响应头) |
1.2 SSL/TLS 加密模式
- Flexible:浏览器 ⇌ Cloudflare (加密) | Cloudflare ⇌ 源站 (不加密)。非常不推荐,只适用于实在无法在源站部署证书的遗留系统。
- Full:浏览器 ⇌ Cloudflare (加密) | Cloudflare ⇌ 源站 (加密)。但 Cloudflare 不验证你源站的 SSL 证书是否有效。
- Full (Strict):浏览器 ⇌ Cloudflare (加密) | Cloudflare ⇌ 源站 (加密)。Cloudflare 严格验证你源站的 SSL 证书必须是由可信 CA 签发的有效证书。这是最佳实践。
1.3 使用注意实现
- 忘记 “ 点亮橙色云朵 “:在 Cloudflare 的 DNS 设置页面,每条记录后面都有一个云朵图标。灰色云朵表示 “ 仅 DNS 解析 “,流量会直达你的源站,不受 Cloudflare 保护和加速。必须点亮为橙色,流量才会经过 Cloudflare 的网络。新手常常只改了 NS 却忘了检查这个。
- Cloudflare 添加的 HTTP Headers:Cloudflare 在将请求转发到你的源站时,会添加一些有用的 Header,如
CF-Connecting-IP
(用户的真实 IP)、CF-IPCountry
(用户所在国家代码)、CF-Worker
(处理该请求的 Worker 名称) 等。你可以在后端应用中直接使用这些信息,而无需自己维护 GeoIP 数据库。
2. 使用
2.1 我的使用
- 域名 DNS 解析,选择代理模式可以解决 vercel 被墙
- 缓存 -> Tiered Cache -> 开启
- 速度 -> 优化 -> 建议的都打开(不要开缩短包含 JavaScript 的页面的绘制时间,影响obsidian动画)
网址测速工具:https://tool.chinaz.com/sitespeed/
2.2 未来
Cloudflare 为数百万个网站提供免费服务。这看起来像是在做慈善,但实际上:免费用户越多 -> 收集的威胁数据越多 -> 安全产品效果越好 -> 吸引更多付费企业客户 -> 赚更多钱建设更好的网络 -> 又能支撑更多免费用户。这个正向循环让它的实力滚雪球般增长。
Cloudflare 的野心远不止做 CDN 和防火墙。它的真正愿景是构建一个可编程的边缘计算网络。Cloudflare Workers 就是这个愿景的核心。它让开发者可以直接在 Cloudflare 全球的边缘节点上运行代码。这意味着你的计算逻辑可以贴近用户执行,而无需返回到遥远的 “ 源站 “。这开启了 Serverless 计算的新范式,比传统的云服务(如 AWS Lambda)延迟更低。