Cloudflare 错误 1101 通常不是脚本代码逻辑问题,而是域名 DNS 解析或路由配置导致的边缘错误,优先检查自定义域名绑定和 DNS 记录是否正确指向 Workers。
先说结论:1101 错误代表 Origin DNS Error,在 Workers 场景下多因自定义域名 DNS 未生效或绑定冲突引起,而非脚本本身报错。
- 先确认:使用默认的 workers.dev 子域名访问,判断是代码问题还是域名配置问题。
- 先处理:检查 Cloudflare 后台自定义域名绑定状态及 DNS 记录 CNAME 指向。
- 再验证:清除浏览器及 Cloudflare 缓存后,通过 dig 或 curl 确认 DNS 解析路径。
快速处理思路
由于 1101 错误涉及 DNS 和路由层面,主要操作在 Cloudflare dashboard 和本地 DNS 查询工具,以下是核心排查路径:
1. 切换测试 URL:暂时使用 script-name.username.workers.dev 访问,若正常则排除代码错误。
2. 检查域名绑定:在 Workers 面板的 Triggers 或 Custom Domains 处,确认域名绑定状态为 Active。
3. 核对 DNS 记录:确保域名 DNS 记录中 CNAME 指向了正确的 workers.dev 地址,且代理状态(Proxy status)符合预期。
为什么会这样
Cloudflare 官方文档将 1101 错误定义为 Origin DNS Error,意味着 Cloudflare 边缘节点无法解析源服务器的 DNS。
对于传统网站,这通常指源站 IP 无法解析;但对于 Workers,脚本运行在 Cloudflare 边缘,理论上没有传统“源站”。当出现 1101 时,通常是因为你绑定了自定义域名,而 Cloudflare 内部路由或外部 DNS 传播存在不一致,导致边缘节点在尝试定位该域名对应的 Worker 路由时发生了 DNS 解析层面的失败。
简单说,这不是你的 JavaScript 代码抛出了异常,而是请求还没进到代码里,就在门口被 DNS 配置拦住了。
分步处理
第一步:隔离问题范围
直接使用 Workers 分配的默认子域名访问。如果默认域名正常,自定义域名报错,则确定是域名配置问题,无需修改代码。
第二步:检查自定义域名绑定
登录 Cloudflare 控制台,进入 Workers 项目页面,找到 Triggers 或 Custom Domains 选项卡。确认绑定的域名状态显示为正常,若显示错误或 pending,尝试移除后重新添加。
第三步:核对 DNS 记录
进入 Cloudflare DNS 设置页面,查找该自定义域名的 CNAME 记录。确保其指向格式正确(通常为 workers.dev 子域名),且记录已保存。注意不要存在多条冲突的 CNAME 或 A 记录。
第四步:清除缓存
进入 Cloudflare 控制台 Caching 页面,选择 Configuration。建议优先使用 Purge by URL 清除特定路径缓存。若必须使用 Purge Everything,请注意这会清除整个 Zone 下所有资源的缓存,可能影响同域名下的其他服务,操作前请确认影响范围。
进阶排查:查看 Worker 实时日志
若 DNS 配置无误但仍报错,可通过日志确认请求是否到达边缘节点。
1. 控制台实时日志:在 Workers 项目页面点击 Logs 标签,开启 Real-time logs。刷新浏览器触发请求,观察是否有日志生成。若 1101 错误期间无日志,说明请求未到达 Worker 执行环境,确认为 DNS 或路由层问题。
2. 命令行日志:若使用 Wrangler CLI,可运行 wrangler tail 实时监听日志输出。
怎么验证是否生效
1. 本地 DNS 查询
在终端使用 dig 命令查询域名 CNAME 记录,确认解析路径是否指向 Cloudflare:
dig CNAME your-custom-domain.com
观察 ANSWER SECTION 是否包含 workers.dev 相关指向。
2. 请求头检查
使用 curl 查看响应头,确认 Server 字段包含 cloudflare,且状态码变为 200:
curl -I https://your-custom-domain.com
3. 页面表现
浏览器无痕模式访问,若不再出现 1101 错误页面,且能正常显示脚本返回内容,则修复成功。
常见坑
1. DNS 传播延迟
修改 DNS 记录后,全球生效需要时间,部分地区可能仍解析到旧 IP,导致间歇性 1101。
2. SSL 配置误区
Workers 自定义域名自动管理 HTTPS 证书,无需在 SSL/TLS 设置中手动调整加密模式。若遇到 HTTPS 相关报错,请检查域名是否已成功绑定并在 Workers 面板显示为 Active。
3. 记录冲突
确保没有同时存在 A 记录和 CNAME 记录指向同一主机名,这会导致解析优先级混乱。
参考来源
- Cloudflare Support, "Troubleshooting Cloudflare 1xxx Errors", https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/
- Cloudflare Developers, "Workers - Custom Domains", https://developers.cloudflare.com/workers/platform/custom-domains/