切换至Heroku Redis后ActionCable出现连接丢失问题求助
ActionCable连接Heroku Redis报错(ECONNRESET)的解决方案
问题原因
Heroku Redis生产实例强制要求SSL连接,你在Resque的Redis配置中已经添加了ssl_params参数适配SSL,但ActionCable的cable.yml配置里缺少SSL相关设置,导致连接建立后被服务器重置,触发Redis::ConnectionError (Connection lost (ECONNRESET))错误。
修正配置
修改你的config/cable.yml生产环境配置,添加SSL相关参数:
production: adapter: redis url: <%= ENV['REDIS_URL'] %> ssl: true ssl_params: verify_mode: <%= OpenSSL::SSL::VERIFY_NONE %>
额外说明
- 确认
REDIS_URL环境变量是Heroku Redis提供的官方地址,可通过heroku config:get REDIS_URL命令查看 - 该配置兼容你当前使用的ActionCable 5.1.7和Redis 4.1.4版本
- 修改完成后重新部署Heroku应用,即可解决ActionCable的连接重置问题
内容的提问来源于stack exchange,提问作者Rene Chan
相关产品推荐
相关产品推荐

