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

部署Django API到Azure Web App遇404错误求助

Django部署Azure Web App后出现404问题的排查与解决

根据你描述的情况,本地运行正常但Azure访问404,结合提供的代码,可按以下步骤排查:

1. 先验证具体API端点是否可用

你的路由配置中,根路径(/)并未绑定任何视图,仅包含了api.urls里的posts/和replies/端点。直接访问Azure默认域名(即根路径)必然返回404,这是符合当前路由逻辑的。

请先测试访问具体端点:

  • https://<你的应用名称>.azurewebsites.net/posts/
  • https://<你的应用名称>.azurewebsites.net/replies/

如果这些端点也返回404,再继续下面的排查步骤。

2. 确认Azure启动命令配置正确

Azure Web App部署Django需要指定正确的启动命令,确保应用能正确加载WSGI入口。常见的启动命令(基于Gunicorn)为:

gunicorn --bind=0.0.0.0 --workers=4 <你的项目名称>.wsgi

需要替换<你的项目名称>为实际项目根目录下wsgi.py所在的文件夹名称(即包含settings.py的目录)。

你可以在Azure门户的配置 > 常规设置 > 启动命令中检查并修改该配置,保存后重启应用。

3. 检查production.py中的ALLOWED_HOSTS配置

必须将Azure应用的域名加入ALLOWED_HOSTS,否则Django会拒绝请求(可能表现为404或400错误):

ALLOWED_HOSTS = ['<你的应用名称>.azurewebsites.net', 'localhost']

如果使用了自定义域名,也要一并添加进去。

4. 验证部署的文件结构完整性

通过Azure门户的高级工具 > 启动Kudu,进入网站的文件管理器,确认以下内容:

  • api应用的urls.py、views.py等文件已正确部署
  • 项目根目录下的urls.py存在且配置正确
  • production.py的配置已正确应用(可查看文件内容确认)

5. 开启详细日志排查请求流向

Azure默认日志可能不足以定位问题,可在production.py中添加Django日志配置,查看请求是否真的到达应用:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'INFO',
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'INFO',
            'propagate': False,
        },
    },
}

保存后重启应用,在Azure门户的日志流中查看:

  • 是否有Django的启动日志(确认应用已正常启动)
  • 当请求进来时,是否有对应的日志记录(确认请求路径是否正确)

6. 确认admin端点是否可用

尝试访问https://<你的应用名称>.azurewebsites.net/admin/,如果也返回404,说明应用可能未正确加载路由,需重点排查启动命令、文件结构或WSGI配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:00:18