快速排查一次Cloudflare配置失误导致回源失败

2025.7.9 杂七杂八 1615
33BLOG智能摘要
上周五深夜因Cloudflare配置失误导致核心业务API出现大面积502报错。监控显示边缘节点返回502,源站资源正常。排查发现,将api.ourdomain.com设为Cloudflare代理的同时,又在Origin Rules中回源至同一域名,造成解析死循环。最终将回源地址改为源站内部IP或独立域名解决。经验指出:回源地址不应指向CF代理的记录,需检查回源端口及关闭部分缓存功能。此次事故体现了云服务配置错误可能导致的复杂表现。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

Cloudflare配置踩坑记:一次DNS解析引发的血案

快速排查一次Cloudflare配置失误导致回源失败

上周五深夜,我正在愉快地吃着烧烤,突然收到监控报警——我们核心业务的API突然大面积502。放下烤串擦了擦手,我花了40分钟才定位到是Cloudflare配置问题。今天就把这个典型的「DNS回源陷阱」复盘给大家,下次遇到类似问题至少能省半小时排查时间。

故障现象:诡异的502报错

最初看到监控图时我很困惑:所有边缘节点都返回502,但源站监控显示CPU/内存完全正常。更奇怪的是:

  • 直接访问源站IP+端口完全正常
  • Cloudflare面板显示「Active」状态
  • SSL证书检测全部通过

这感觉就像你家WiFi显示满格却打不开网页——最折磨人的故障类型。

排查过程:那些容易忽略的细节

首先用dig +trace确认DNS解析链:

dig api.ourdomain.com +trace
;; Received 1056 bytes from 1.1.1.1#53(1.1.1.1) in 12 ms
;; → 这里显示Cloudflare返回了正确IP

接着用cURL测试回源请求:

curl -v -H "Host: api.ourdomain.com" http://源站IP
→ 200 OK

直到用Cloudflare的测试工具才发现端倪:

Error 502: Hostname does not resolve to origin server

问题根源:DNS配置的「鬼打墙」

原来我们在Cloudflare做了两件「聪明反被聪明误」的操作:

  1. 在DNS记录里把api.ourdomain.com指向了Cloudflare代理(橙色云图标)
  2. 同时在「Origin Rules」里设置了回源地址为api.ourdomain.com

这就形成了死循环:用户请求 → CF代理 → 解析回源地址 → 又指向CF代理 → 无限循环直到超时。

解决方案与经验总结

最终修正方法很简单:在Origin Rules里改用源站内部IP独立解析记录(如origin-api.ourdomain.com)。这里分享几个关键经验:

  • ⚠️ 永远不要让回源地址指向经过CF代理的记录
  • 善用端口检查工具确认回源端口开放
  • 测试时建议关闭「Always Online」等缓存功能

这次事故让我深刻理解到:越是「智能」的云服务,配置错误时表现越诡异。下次再遇到502,我的排查清单会首先检查这个死亡循环。现在,我得去把凉了的烤串热一热…

评论

  • 这种配置问题真的很容易忽视,感谢楼主分享经验!下次遇到类似情况就知道怎么查了

  • 太真实了,上次我也是在吃火锅的时候接到报警

  • Cloudflare的文档确实写得比较晦涩,这种’死亡循环’的坑真的防不胜防啊

  • 学到了!原来是Origin Rules和DNS记录不能互相指向

  • 吃过同样的亏+1 当时熬到凌晨三点才发现是这个问题 😭

  • 这个排查思路很清晰啊,从dig到curl再到官方工具层层推进