部署Node.js应用到Heroku时遇RPC错误求助
解决Heroku部署时的RPC失败(curl 56 SSL read)问题
我之前也遭遇过完全相同的部署报错!你已经尝试了增大git缓冲区但没效果,那咱们换几个方向排查试试:
先把你的报错信息贴出来方便对照:
λ git push heroku master Counting objects: 2315, done. Delta compression using up to 4 threads. Compressing objects: 100% (2203/2203), done. Writing objects: 100% (2315/2315), 2.26 MiB | 3.17 MiB/s, done. Total 2315 (delta 482), reused 0 (delta 0) error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly Everything up-to-date
接下来是具体的解决办法,按优先级尝试:
检查本地网络环境
这个错误大概率是网络波动或者防火墙/代理拦截了SSL连接。试试切换到手机热点(避开公司/家庭的防火墙限制),或者暂时关闭本地杀毒软件、防火墙再推送。如果用了代理,先关掉代理再操作。更换Heroku远程仓库的协议
默认的HTTPS协议可能触发SSL读取问题,换成SSH协议试试:- 先删除现有Heroku远程:
git remote rm heroku - 用SSH地址重新添加:
git remote add heroku git@heroku.com:你的应用名称.git
(如果没配置过Heroku SSH密钥,先运行heroku keys:add添加本地公钥)
- 先删除现有Heroku远程:
分批推送代码
一次性推送大量对象容易触发连接中断,试试拆分推送:
比如先推最近10个commit:git push heroku HEAD~10:master,成功后再推剩余代码:git push heroku master重置并调整Git网络配置
除了缓冲区,还可以调整SSL相关配置:- 先重置HTTP缓冲区配置:
git config --unset http.postBuffer - 设置更大的缓冲区(比如500MB):
git config --global http.postBuffer 524288000 - 指定SSL版本为TLSv1.2:
git config --global http.sslVersion tlsv1.2
- 先重置HTTP缓冲区配置:
更新本地Git版本
旧版本Git可能存在SSL兼容性问题,去Git官网安装最新版本后再尝试推送。
如果以上方法都没用,可以绕开Git推送,用Heroku CLI直接部署:heroku deploy:dir --app 你的应用名称(把本地构建好的文件目录直接部署)
内容的提问来源于stack exchange,提问作者Xcode
相关产品推荐
相关产品推荐

