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

Azure WebApp部署Django应用启动失败排查求助

Django部署Azure WebApp端口无响应问题排查方向

1. 排查启动脚本的执行逻辑

  • 确认start.sh中Celery命令是否后台运行:如果Celery以前台模式启动,会阻塞后续的runserver执行,需给Celery命令添加&让其后台运行,例如celery -A your_project worker --loglevel=info &。
  • 检查脚本执行权限:部署后通过Azure WebApp的SSH终端执行chmod +x start.sh,或在Pipeline中添加权限设置步骤,确保脚本可执行。
  • 手动执行脚本验证:在SSH终端直接运行./start.sh,观察实时输出,定位是否有依赖缺失、配置错误等导致runserver启动失败的问题。

2. 确认runserver的绑定配置

  • 确保runserver绑定0.0.0.0:8000:如果绑定127.0.0.1,容器外部无法探测到端口,正确命令应为python manage.py runserver 0.0.0.0:8000。
  • 核对WebApp端口设置:在Azure WebApp的「应用程序设置」中,确认WEBSITES_PORT配置为8000,保证平台探测端口与应用监听端口一致。

3. 提取启动详细日志

  • 查看Kudu日志:进入WebApp的「高级工具」→「Kudu」→「调试控制台」→「日志」目录,查看docker.log或application.log,里面会记录runserver启动失败的具体错误(如数据库连接失败、环境变量缺失)。
  • 在start.sh中添加日志输出:将runserver的输出重定向到日志文件,例如python manage.py runserver 0.0.0.0:8000 >> /home/site/wwwroot/runserver.log 2>&1 &,后续通过Kudu查看该日志文件。

4. 验证项目文件完整性与路径

  • 检查部署后文件结构:通过Kudu文件管理器查看/home/site/wwwroot目录,确认包含manage.py、项目目录、requirements.txt等关键文件。
  • 核对脚本路径:如果项目在子目录中,需在start.sh中先切换到对应目录再执行runserver,例如cd /home/site/wwwroot/your_project && python manage.py runserver...。

5. 检查依赖安装状态

  • 确认Pipeline依赖安装步骤:确保Pipeline中执行了pip install -r requirements.txt,且无安装失败提示。
  • 容器内验证依赖:通过SSH终端执行pip list,检查是否缺失Django、Celery等核心依赖,或存在版本不兼容情况。

6. 测试端口连通性

  • 本地端口测试:在SSH终端执行curl localhost:8000,如果返回错误说明runserver未正常启动;如果能访问,需排查Azure平台的端口映射或防火墙规则。
  • 检查网络配置:确认WebApp的防火墙规则未阻止8000端口,VNet集成配置未影响端口探测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:07:12