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

Heroku部署报错RPC failed; HTTP 504 现有方案无效求解决方法

Heroku HTTP部署504错误解决方案

一、精简提交传输体积

报错日志显示单次推送的Git包体积达50.77MiB,体积过大是触发网关超时的核心诱因之一,可通过以下操作缩小传输体积:

  • 清理Git历史中的冗余大文件:使用git filter-repo工具移除历史提交中误提交的node_modules、压缩包、日志等非必要文件,同时补全.gitignore规则避免后续重复提交冗余文件。
  • 压缩提交记录:将多次提交合并为单次提交后再推送,减少需要传输的Delta数据量,操作命令参考:
# 替换为你上次成功部署的commit哈希
git reset --soft <last-successful-commit-hash>
git commit -m "deploy: 合并提交减少传输体积"
git push heroku main

二、调整Git HTTP传输配置

除了http.postBuffer外,还有多个和传输超时相关的配置可调整,放宽超时限制避免被提前中断:

  • 调整低速度传输阈值,允许低速传输持续更长时间:
# 传输速度低于1000字节/秒且持续600秒才中断传输
git config --global http.lowSpeedLimit 1000
git config --global http.lowSpeedTime 600
  • 强制使用HTTP/1.1协议,部分网络环境下HTTP/2的多路复用机制会导致传输不稳定:
git config --global http.version HTTP/1.1
  • 延长HTTP请求超时时间:
git config --global http.timeout 300

三、网络与部署方式调整

  • 切换网络环境:关闭当前使用的代理/VPN后重试,或切换为手机热点等其他运营商网络再推送,排查是否为当前网络链路到Heroku节点不稳定导致的超时。
  • 改用Heroku CLI直接部署应用包:无需推送完整Git历史,仅传输打包后的应用运行文件,体积更小不易超时,参考命令(根据你的应用类型调整):
# 打包当前应用为zip包后直接部署
heroku deploy:zip app.zip --app <你的heroku应用名>

四、临时过渡方案

当前Heroku尚未完全停用SSH传输方式,生产环境紧急部署可先使用SSH方式完成,后续再逐步排查HTTP传输的链路问题,官方停用前会预留足够的迁移窗口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:36:04