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

Docker部署Django项目ALLOWED_HOSTS配置问题排查

解决Django部署在DigitalOcean Droplet时ALLOWED_HOSTS不生效的问题

嘿,我之前在DigitalOcean上部署Docker化的Django项目时也踩过这个一模一样的坑!明明加了IP到ALLOWED_HOSTS还是报错,大概率是配置没真正落地,给你梳理几个排查方向和解决方法:

1. 先确认:你的配置真的被Django读到了吗?

如果你是直接拉取DockerHub上的现成镜像,千万别直接改Droplet主机上的文件——镜像里的配置是打包好的,主机上的修改根本传不到容器里!

  • 先进入容器内部查看真实的配置:
    docker exec -it <你的容器名/ID> /bin/bash
    
    找到settings.py,看看ALLOWED_HOSTS里是不是真的有'167.99.106.66',比如应该是这样:
    ALLOWED_HOSTS = ['167.99.106.66', 'localhost', '127.0.0.1']
    
  • 如果容器里的配置没改,要么手动在容器里修改后重启,要么更规范的是用环境变量传递配置(推荐!):
    启动容器时加环境变量参数:
    docker run -e "ALLOWED_HOSTS=167.99.106.66,localhost" -p 8000:8000 <你的镜像名>
    
    前提是你的Django配置已经支持读取环境变量,settings.py里要这么写:
    import os
    ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS", "").split(",")
    

2. 别忘重启容器!

不管你是手动改了容器里的配置,还是用环境变量传递,一定要重启容器才能让新配置生效:

docker restart <容器名/ID>

重启后可以再进容器确认配置,或者看日志docker logs <容器名>,确保Django启动时加载的是正确的ALLOWED_HOSTS。

3. 反向代理的坑(如果用了Nginx)

要是你在Droplet上搭了Nginx做反向代理,那HTTP_HOST可能是Nginx传给Django的,这时候要注意:

  • 检查Nginx配置里的proxy_set_header,确保传递的Host是正确的,比如:
    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host 167.99.106.66;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
  • 同时Django的ALLOWED_HOSTS要包含Nginx传过来的这个Host值,测试环境可以临时用ALLOWED_HOSTS = ['*']快速验证。

4. 顺便检查Droplet的防火墙

虽然报错是HTTP_HOST,但也有可能是端口没开放导致请求根本没到Django:

  • 去DigitalOcean控制台看Droplet的防火墙规则,确保允许HTTP(80)或你用的端口(比如8000)的入站流量。
  • 也可以在Droplet上用ufw status查看本地防火墙,开放端口:
    ufw allow 8000/tcp
    ufw reload
    

额外的配置建议

  • 测试环境可以先用ALLOWED_HOSTS = ['*']快速排除是不是这个配置的问题,没问题再改成具体的IP或域名。
  • 生产环境建议用域名代替IP,把域名解析到Droplet后,ALLOWED_HOSTS里加['yourdomain.com', 'www.yourdomain.com']。
  • 如果用Docker Compose部署,在docker-compose.yml里配置环境变量更方便:
    services:
      web:
        image: your-django-image
        environment:
          - ALLOWED_HOSTS=167.99.106.66,yourdomain.com
        ports:
          - "8000:8000"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:34:49