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

使用Django channels_redis无法与Heroku Redis建立连接问题求助

问题原因

Heroku 上的 Redis 实例默认要求所有外部连接必须使用 SSL 加密,你当前的通道层配置没有开启 SSL 选项,未加密的连接请求会被服务端主动断开,就会抛出 Connection reset by peer 错误。

解决方案

按以下步骤修改配置即可修复:

  • 第一步:修改 settings.py 中的 CHANNEL_LAYERS 配置,新增 SSL 相关适配参数:
import os
import ssl

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [os.environ.get('REDIS_URL', ("localhost", 6379))],
            # 生产环境自动开启SSL,本地开发环境不开启
            "ssl": bool(os.environ.get('REDIS_URL')),
            "ssl_cert_reqs": ssl.CERT_NONE,
        },
    },
}
  • 第二步:确认依赖版本兼容,Python 3.7 环境下建议安装适配的 channels-redis 版本:
    在 requirements.txt 中加入 channels-redis>=3.3.0,<4.0.0,重新部署更新依赖即可。
  • 第三步:确认 Heroku 环境变量配置正确,进入 Heroku 应用控制台的「设置」页,查看 Config Vars 列表中是否存在 REDIS_URL 变量,值应为 rediss:// 开头的连接地址。

修改完成后重新部署即可正常连接 Heroku Redis。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:18:05