Cloudflare Origin Rules 架构与配置指南
概述
在单负载均衡器(LB)绑定多端口的后端架构中,Cloudflare 的 Origin Rules(源站规则) 提供了灵活的 HTTP 请求重写能力。通过在 Cloudflare 边缘节点匹配特定请求条件(如主机名),动态修改发往源站的目标连接端口,实现了流量的精准分发与统一安全暴露。
工作原理
- 客户端请求:用户使用标准的 HTTP/HTTPS 端口(如 80 或 443)访问目标域名。
- 边缘节点匹配:流量到达 Cloudflare 边缘节点后,匹配预设的 Origin Rules 条件(例如
主机名 等于 example.com)。 - 端口动态重写:边缘节点将请求的目标端口动态更改为后端负载均衡器实际监听的自定义端口(例如
1031)。 - 回源与响应:Cloudflare 节点直接连接后端负载均衡器的指定端口,并将回源响应返回给客户端。
核心优势
- 隐藏真实端口与服务结构
外部客户端始终只需访问标准的 80/443 端口,后端真实服务端口(如 1031、8080 等)完全隐藏在 Cloudflare 代理之后,显著降低被直接扫描和攻击的风险。 - 突破标准 CDN 代理限制
Cloudflare 默认仅支持特定标准端口代理。利用 Origin Rules 的端口重写功能,可将任意非标准后端端口映射到标准域名,免去改动后端端口监听的成本。 - 简化负载均衡器(LB)路由配置
无需在后端负载均衡器前端配置复杂的域名匹配与转发规则,所有的域名到端口映射逻辑收敛在 Cloudflare 端统一管理。 - 灵活的域名与 微服务路由
支持按域名或子域名精准分发至后端同一 LB 的不同端口,实现微服务与多站点的便捷路由控制。
端口映射配置参考
| 域名条件 (Matching Condition) | 边缘访问端口 | 源站重写端口 (Origin Port) | 适用场景 / 对应服务 |
|---|---|---|---|
example.com |
443 | 1031 | 主站服务 |
www.example.com |
443 | 1031 | 主站 Web 镜像 |
api.example.com (配置示例) |
443 | 8080 | 后端 API 服务 |
admin.example.com (配置示例) |
443 | 9000 | 管理后台 |
注:以上
example.com / api.example.com / admin.example.com均为脱敏占位,生产环境请替换为真实域名。
适用场景
- 单台 LB 对外暴露多个不同端口的服务(主站、API、管理后台、内部工具)
- 后端服务已绑定非标准端口,不便改动监听
- 需要在 Cloudflare 边缘统一接入 HTTPS / WAF / Bot 防护
- 想收敛后端路由配置,把「域名 → 端口」映射交给边缘处理
注意事项与限制
- Cloudflare 套餐要求:Origin Rules 在 Free 套餐下数量受限(10 条以内),多端口场景建议至少 Pro 套餐。
- HTTPS 回源:源站必须是 Cloudflare 可信任的证书(Origin CA / 自签 / CA 签发均可),否则会回源失败。
- WebSocket / gRPC:Origin Rules 重写的是 TCP 端口,应用层协议透传,仍需后端服务自身支持。
- 回源 IP 白名单:Cloudflare 边缘 IP 段需要加入 LB / 安全组白名单,否则 403。
- 调试建议:先在 Cloudflare 后台 → Rules → Origin Rules 中用
Evaluate工具测试单条规则,确认匹配后再批量启用;建议每条规则配独立注释,便于维护。
参考
- Cloudflare 官方文档:Origin Rules
- Cloudflare IP 段列表:https://www.cloudflare.com/ips/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OpsThoughts!

