Cisco Yang Suite远程访问HTTP 400错误:ALLOWED_HOSTS修改无效
解决Yang Suite远程访问HTTP 400 Bad Request问题
问题根源
你的配置逻辑优先读取环境变量DJANGO_ALLOWED_HOSTS,如果该环境变量存在,会直接覆盖你在else分支里设置的ALLOWED_HOSTS。另外,直接修改容器内的production.py属于临时修改,删除镜像重编排后会恢复默认配置,导致修改不生效。
解决方案
方法1:通过环境变量配置(推荐,灵活易维护)
Yang Suite的Docker部署支持通过环境变量配置ALLOWED_HOSTS,找到启动用的bash脚本或docker-compose.yml文件,按以下方式修改:
- 修改启动脚本:在脚本中添加环境变量声明
export DJANGO_ALLOWED_HOSTS="localhost enauto.homelab.com 192.168.1.51" - 修改docker-compose.yml:在yangsuite服务块中添加环境变量
services: yangsuite: environment: - DJANGO_ALLOWED_HOSTS=localhost enauto.homelab.com 192.168.1.51
修改完成后重启服务:
docker-compose down docker-compose up -d
方法2:修改配置文件并重新构建镜像
如果必须通过修改production.py实现,需确保修改后的文件被打包进镜像:
- 找到本地Yang Suite仓库中的
production.py文件(不是容器内的临时文件) - 修正配置写法(改为列表格式,符合Django规范):
if 'DJANGO_ALLOWED_HOSTS' in os.environ: ALLOWED_HOSTS = os.getenv('DJANGO_ALLOWED_HOSTS', 'localhost').split() else: ALLOWED_HOSTS = ['localhost','enauto.homelab.com','192.168.1.51'] - 重新构建镜像并启动服务:
docker-compose build yangsuite docker-compose up -d
验证步骤
启动后查看容器日志,确认不再出现DisallowedHost错误,然后从远程机器访问https://enauto.homelab.com:8443测试是否正常加载前端页面。
内容的提问来源于stack exchange,提问作者steele_ntwrk
相关产品推荐
相关产品推荐

