Django应用部署到Azure Web App Service异常,请求技术指导
Django部署到Azure Web App后显示默认主页的解决方案
1. 配置应用启动命令
Azure Web App不会自动识别Django的启动方式,必须手动指定生产服务器启动命令:
- 登录Azure门户,进入你的Web App,打开「配置」>「常规设置」
- 在「启动命令」栏输入:
注意:将gunicorn --bind=0.0.0.0 --workers=4 --timeout=600 <你的项目名>.wsgi:application<你的项目名>替换为包含wsgi.py的Django项目文件夹名称(比如你的示例里是csvvalidator)
2. 确保虚拟环境被正确激活
如果你的项目依赖虚拟环境,需配置Azure在启动时激活它:
- 在项目根目录创建
.deployment文件,写入以下内容:
(如果虚拟环境路径不同,替换为实际路径)[config] command = source /home/site/wwwroot/venv/bin/activate && gunicorn --bind=0.0.0.0 --workers=4 --timeout=600 csvvalidator.wsgi:application
3. 更新Django的ALLOWED_HOSTS设置
在settings.py中必须添加Azure Web App的域名,否则Django会拒绝请求:
ALLOWED_HOSTS = ['<你的WebApp名称>.azurewebsites.net', '127.0.0.1']
测试阶段可临时设为ALLOWED_HOSTS = ['*'],生产环境务必指定具体域名
4. 关于端口占用的说明
你在SSH中运行python manage.py runserver提示端口被占用,是因为Azure已经通过生产服务器(如Gunicorn)占用了端口。开发服务器runserver仅用于本地开发,生产环境不需要手动启动它,Azure会通过你配置的启动命令自动运行生产服务器。
5. 重启Web App验证
完成所有配置后,在Azure门户重启你的Web App,等待重启完成后访问站点即可加载Django应用。
内容的提问来源于stack exchange,提问作者LLM_Enthusiast
相关产品推荐
相关产品推荐

