You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloudflare for SaaS自定义主机名触发522连接超时错误

解决Cloudflare for SaaS + Heroku Rails应用的522超时错误

针对你遇到的自定义域名访问出现Cloudflare 522错误的问题,按以下步骤排查:

1. 确认Fallback Origin配置正确性

直接访问proxy-fallback.saastool.com也报错,说明Fallback Origin的指向存在问题:

  • 登录Cloudflare后台,进入「Cloudflare for SaaS」设置,检查Fallback Origin是否设置为你正常工作的Heroku应用域名(比如app.saastool.com),不要使用Heroku的IP地址(Heroku IP是动态的,无法稳定指向)。
  • 确保Fallback Origin的URL使用https://开头(如果Heroku应用启用了SSL)。

2. 验证自定义主机名的DNS与代理状态

  • 检查portal.customerdomain.com的CNAME记录:必须指向Cloudflare提供的CNAME目标(而非直接指向Fallback Origin),且记录的云图标为橙色(代理模式),灰色(仅DNS)会导致流量不经过Cloudflare,无法触发SaaS路由逻辑。
  • 确认自定义主机名在Cloudflare后台的「自定义主机名」列表中状态为已验证,未验证的主机名无法正常路由。

3. 配置Heroku允许Cloudflare IP访问

Heroku的默认防火墙可能拦截Cloudflare的代理流量,导致连接超时:

  • 获取Cloudflare官方IP段,在Heroku应用的「Settings」→「Config Vars」中添加TRUSTED_PROXIES变量,值为Cloudflare的IP段(逗号分隔)。
  • 在Rails应用中配置config.action_dispatch.trusted_proxies,将Cloudflare IP加入信任列表,确保应用能正确识别代理请求。

4. 检查SSL/TLS模式匹配

  • Cloudflare的SSL/TLS模式需与Heroku应用的SSL状态匹配:
    • 如果Heroku应用有SSL证书(通过Heroku SSL或自定义证书),设置Cloudflare的SSL模式为完全;
    • 如果Heroku应用仅支持HTTP,设置为灵活(不推荐生产环境使用)。
  • 确保Cloudflare为自定义主机名自动颁发的SSL证书状态正常,无过期或未验证情况。

5. 排查DNS解析与缓存

  • 使用dig portal.customerdomain.com或nslookup portal.customerdomain.com命令,确认解析结果为Cloudflare的IP地址,而非旧的DNS记录。
  • 清除本地DNS缓存(Windows执行ipconfig /flushdns,Mac执行sudo dscacheutil -flushcache),切换网络测试,排除缓存干扰。

6. 查看Heroku应用日志

执行命令heroku logs --tail实时查看日志,检查是否有来自Cloudflare IP的请求到达应用:

  • 如果没有看到请求记录,说明流量未通过Cloudflare路由到Heroku,回到步骤2检查DNS和代理状态;
  • 如果看到请求被拒绝,说明Heroku防火墙或应用配置拦截了流量,回到步骤3调整信任设置。

内容的提问来源于stack exchange,提问作者Emmet Gibney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:21:26