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

本地运行的Django应用如何连接AWS ElastiCache Redis实例

问题根因

本地通过Docker Compose运行Django应用时,容器内的127.0.0.1指向容器自身的回环接口,并非宿主机上SSH隧道监听的本地地址,因此无法访问隧道转发的ElastiCache Redis服务。此外你当前的docker-compose配置中,proxy服务占用了宿主机6379端口,和SSH隧道的监听端口冲突,也会导致连接失败。

修复步骤

  1. 移除不必要的端口映射
    你的proxy服务是Nginx反向代理,不需要暴露Redis端口,直接删除proxy配置下ports列表中的- 6379:6379行,避免端口冲突。
  2. 调整Redis连接地址配置
    Docker提供了专门的域名指向宿主机,你不需要修改网络模式即可完成访问:
  • Windows/macOS运行Docker的场景,宿主机固定域名为host.docker.internal
  • Linux运行Docker的场景,默认宿主机地址为Docker网桥网关172.17.0.1,也可以通过配置统一使用host.docker.internal域名
    直接在本地开发用的.env文件中添加如下配置即可:
CLUSTER_HOST=host.docker.internal
  1. (仅Linux环境需补充配置)
    如果是Linux系统运行Docker,需要在website服务的配置中添加extra_hosts规则,把host.docker.internal指向宿主机网关:
services:
  website:
    build:
      context: .
    restart: always
    volumes:
      - static-data:/vol/web
    environment: *app-variables
    depends_on:
      - postgres
    # 仅Linux环境添加下面两行
    extra_hosts:
      - "host.docker.internal:host-gateway"
  1. 重启Docker Compose所有服务,配置即可生效。

验证方式

进入运行中的website容器,执行redis-cli -h $CLUSTER_HOST -p 6379,如果能正常进入Redis交互终端,说明连接配置成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:24:11