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

Docker Compose网络中前端访问Django后端失败(已配置ALLOWED_HOSTS)

解决方案

以下是几个可以解决该问题的方向,按优先级尝试:

1. 确保修改的配置文件已生效

你修改本地settings.py后,必须重新构建后端镜像——因为你的backend服务是基于本地代码构建的,旧镜像里仍然是未修改的配置。执行以下命令更新镜像并重启服务:

docker-compose build backend
docker-compose up -d

2. 补充带端口的主机名到ALLOWED_HOSTS

Django的ALLOWED_HOSTS会严格匹配请求的HTTP_HOST头。当你执行curl backend:8000时,请求头中的Host字段是backend:8000,而非单纯的backend,所以需要把这个完整值加入配置:

ALLOWED_HOSTS = ['backend', 'backend:8000']

如果是开发环境,也可以临时使用通配符快速验证(生产环境禁止使用):

ALLOWED_HOSTS = ['*']

3. 检查是否有环境变量覆盖配置

如果你的Django项目通过环境变量(比如DJANGO_ALLOWED_HOSTS)来配置ALLOWED_HOSTS,那么仅修改settings.py不会生效,需要同步修改对应的环境变量值。比如在docker-compose.yml的backend服务中添加:

environment:
  - DJANGO_ALLOWED_HOSTS=backend,backend:8000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:12:26