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

在Django中配置Azure Redis Cache遇连接重置错误求助

Django集成Azure Redis Cache连接问题排查方案

以下是针对你遇到的Connection reset by peer错误的可能排查方向:

  • 检查Azure Redis防火墙规则
    Azure Redis Cache默认会限制IP访问,你需要将DigitalOcean服务器的公网IP添加到Azure Redis的防火墙白名单中。操作步骤:在Azure Portal找到你的Redis资源,进入「网络」设置,在「防火墙和虚拟网络」选项里添加服务器的公网IP地址或IP范围。

  • 统一Redis认证配置方式
    你的配置中同时使用了LOCATION里的rediss://协议和OPTIONS中的PASSWORD参数,可能存在冲突。建议二选一:

    • 方式一:将密码嵌入REDIS_URL,格式为rediss://:<PASSWORD>@myhostname.net:6380/0(末尾的/0是数据库编号,可选),同时移除OPTIONS中的PASSWORD配置。
    • 方式二:保持REDIS_URL为rediss://myhostname.net:6380/0,确保OPTIONS中的PASSWORD参数正确读取到环境变量。
  • 调整SSL证书验证配置
    虽然开启了SSL: True,但部分环境可能无法自动验证Azure的SSL证书,可尝试临时调整证书验证规则测试:

    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": os.getenv('REDIS_URL'),
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "SSL": True,
                "PASSWORD": os.getenv('REDIS_PASSWORD'),
                "SSL_CERT_REQS": "none"  # 仅测试用,生产环境需替换为CA证书路径
            }
        }
    }
    

    生产环境建议下载Azure官方CA证书,通过SSL_CA_CERTS参数指定证书路径,避免关闭证书验证。

  • 升级依赖版本
    旧版本的redis-py或django-redis可能存在Azure Redis兼容性问题,执行以下命令升级到最新稳定版:

    pip install --upgrade redis django-redis
    
  • 直接测试Redis连接
    在DigitalOcean服务器上用redis-cli直接测试连接,排查是否是Django配置之外的问题:

    redis-cli -h myhostname.net -p 6380 -a <你的密码> --ssl
    

    如果该命令连接失败,说明问题出在网络或Azure Redis的基础配置;如果连接成功,再回到Django配置细节排查。

内容的提问来源于stack exchange,提问作者Lutaaya Huzaifah Idris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:25:31