结合云服务器和 Cloudflare 服务,可以构建 高性能、低成本、高安全 的混合架构,充分发挥二者的优势(云服务器处理核心业务,Cloudflare 提供边缘加速和安全防护)。以下是具体应用场景和技术实现方案:
一、性能优化与负载均衡
1. 动静分离 + 全球加速
- 场景: 静态资源托管到 Cloudflare CDN,动态请求转发到云服务器。
- 实现:
- 将
static.example.com的 DNS 解析指向 Cloudflare,开启 CDN 和缓存规则。 - 云服务器仅处理
api.example.com的动态请求。
- 将
- 优化效果:
- 减少云服务器 70% 以上带宽消耗,降低延迟。
- 通过 Cloudflare 的 Argo Smart Routing 优化跨国访问路径。
2. 边缘缓存动态内容
- 场景: 缓存频繁访问的动态内容(如商品详情页)。
Cloudflare Workers 代码示例:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const CACHE_TTL = 60; // 缓存 60 秒
const cacheKey = new Request(request.url, request);
const cache = caches.default;
// 尝试从缓存读取
let response = await cache.match(cacheKey);
if (!response) {
// 回源到云服务器
response = await fetch(request);
response = new Response(response.body, response);
response.headers.append('Cache-Control', `s-maxage=${CACHE_TTL}`);
event.waitUntil(cache.put(cacheKey, response.clone()));
}
return response;
}
二、安全与防护
3. 隐藏云服务器 IP
- 步骤:
- 在 Cloudflare DNS 设置中启用代理状态(橙色云图标)。
- 在云服务器防火墙中仅允许 Cloudflare IP 段访问(Cloudflare IP 列表)。
- 效果:
- 防止 DDoS 攻击直接打到服务器,避免 IP 暴露。
4. 边缘 WAF 防护
- 配置:
- 在 Cloudflare 控制台启用 WAF(Web Application Firewall)规则:
- 拦截 SQL 注入、XSS 攻击。
- 封禁恶意 Bot(如扫描工具)。
- 设置速率限制(Rate Limiting),防止 API 被刷。
- 成本: 免费版 WAF 已包含基础规则,企业版支持自定义规则。
三、混合架构与无服务器集成
5. 边缘处理 + 云服务器核心计算
- 场景: 用户上传图片后,Cloudflare 边缘节点压缩图片,云服务器进行 AI 分析。
- 架构:
- 用户 → Cloudflare Workers(图片压缩为 WebP) → 云服务器(存储 + 分析)。
- 结果返回时,通过 Workers 添加水印或优化响应。
6. 低成本 WebSocket 服务
- 方案:
- 用 Cloudflare Durable Objects 维持长连接状态。
- 云服务器处理需要高计算力的消息(如游戏战斗逻辑)。
- 代码片段(Workers + WebSocket):
// Cloudflare Worker 处理握手和消息转发
export class ChatRoom {
constructor(state) {
this.state = state;
this.users = new Map();
}
async fetch(request) {
const webSocketPair = new WebSocketPair();
const [client, server] = Object.values(webSocketPair);
server.accept();
server.addEventListener('message', (msg) => {
// 将消息转发到云服务器 API
fetch('https://backend.example.com/chat', {
method: 'POST',
body: msg.data
});
});
return new Response(null, { status: 101, webSocket: client });
}
}
四、成本优化方案
7. 带宽成本归零
- 策略:
- 所有流量经过 Cloudflare,利用其免费 CDN 带宽。
- 云服务器仅响应未缓存请求,流量消耗极低。
- 适用场景: 静态网站、博客、文档站点。
8. 数据库卸载
- 方案:
- 高频读取数据存储到 Cloudflare KV 或 D1(边缘数据库)。
- 云服务器仅处理低频写入操作。
- 示例: 用户配置信息存在 KV,订单数据存在云数据库。
五、创新应用场景
9. 全球分布式 Cron 任务
- 实现:
- 用 Cloudflare Workers 的
Scheduled Events触发定时任务。 - 调用云服务器 API 执行爬虫、备份等密集型操作。
- 用 Cloudflare Workers 的
- 优势: 避免云服务器常驻进程占用资源。
10. 边缘 A/B 测试
- 场景: 在 Cloudflare 边缘分流用户,云服务器收集分析数据。
- Workers 代码:
addEventListener('fetch', event => {
const cookie = event.request.headers.get('Cookie');
let variant = cookie.includes('variant=A') ? 'A' : 'B';
if (!cookie) {
variant = Math.random() > 0.5 ? 'A' : 'B';
event.response = new Response(null, {
headers: { 'Set-Cookie': `variant=${variant}` }
});
}
// 转发到云服务器的不同接口
event.respondWith(fetch(`https://backend.example.com/${variant}`));
});
六、部署与运维技巧
11. 自动化部署
- 工具链:
- 云服务器使用 GitHub Actions 自动构建 Docker 镜像。
- Workers 通过 Wrangler CLI 实现 CI/CD。
- 示例流程:
# GitHub Actions 片段
- name: Deploy to Cloudflare
uses: cloudflare/wrangler-action@v2
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
12. 监控与告警
- 配置:
- Cloudflare 控制台查看缓存命中率、防火墙事件。
- 云服务器部署 Prometheus + Grafana 监控资源使用。
- 异常时通过 Cloudflare Webhooks 通知 Telegram。
七、典型架构案例
案例 1:电商网站
- 架构:
- 边缘层: Cloudflare CDN(缓存商品图片/描述) + WAF 防护。
- 逻辑层: Workers 处理购物车和优惠券计算。
- 核心层: 云服务器运行库存管理和支付接口。
案例 2:媒体流平台
- 架构:
- 边缘层: Cloudflare Stream 处理视频转码和分发。
- API 层: Workers 鉴权并生成临时播放令牌。
- 存储层: 云服务器管理原始视频文件和元数据。
八、避坑指南
- 缓存穿透:
- 使用 Workers 的
Cache API设置空结果缓存(如Cache-Control: s-maxage=10)。
- 使用 Workers 的
- 冷启动延迟:
- 对关键 Workers 启用 Smart Placement。
- 数据一致性:
- 通过云服务器发送 Purge 请求清理 Cloudflare 缓存(
POST /purge_cache)。
- 通过云服务器发送 Purge 请求清理 Cloudflare 缓存(
通过合理分工(Cloudflare 处理边缘轻量任务,云服务器聚焦核心业务),可以实现 低成本、高可用、易扩展 的架构,尤其适合个人开发者或创业项目。