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

相同Docker配置部署AWS新实例出现Nginx 404 Not Found问题求助

排查步骤

  • 首先确认返回404的确实是你部署的Nginx服务:在新实例本地执行curl http://127.0.0.1,看返回头的Server字段是否为nginx,排除AWS安全组、负载均衡等上层设备返回404的可能。
  • 检查所有容器运行状态
    执行docker ps -a确认flask、mongodb、webserver三个容器均为Up正常运行状态,若有容器异常退出,执行docker logs 容器名查看报错日志定位启动失败原因。
  • 验证Flask服务可用性
    进入webserver容器测试上游Flask服务连通性:
    docker exec -it webserver curl http://flask:5000
    
    若该请求也返回404,说明问题出在Flask服务本身,和Nginx无关:
    • 执行docker exec -it flask flask routes查看Flask加载的路由是否符合预期
    • 检查新实例的flask_application目录下是否存在wsgi.py文件,路径是否和Dockerfile中配置的ENV FLASK_APP /var/www/wsgi.py匹配
    • 查看Flask容器日志docker logs flask确认是否存在MongoDB连接失败、依赖缺失等启动异常
  • 排查Nginx配置问题
    • 执行docker exec webserver nginx -t验证Nginx配置语法是否正确
    • 执行docker exec webserver nginx -T导出Nginx实际加载的全量配置,确认你的app.conf被正常加载,无其他默认配置覆盖server规则
    • 查看Nginx日志docker logs webserver根据报错定位问题:
      • 出现no live upstreams报错:说明Nginx无法连通Flask服务,检查两个容器是否均加入frontend网络、Flask服务是否正常监听5000端口
      • 出现文件不存在报错:确认是否缺失静态资源路径配置,可导出原有实例上的Nginx运行配置docker exec 原有实例webserver容器名 nginx -T,和新实例配置做对比,确认是否有首次部署时手动修改的配置未同步到代码库
  • 其他高频踩坑点
    • 确认新实例的代码目录结构和原有实例完全一致,无文件缺失、路径大小写不匹配问题
    • 执行docker-compose build --no-cache强制无缓存重新构建镜像,避免镜像缓存导致的文件缺失问题
    • 你的docker-compose中Flask服务挂载了.:/src,如果代码逻辑中存在读取/src目录文件的操作,需确认新实例当前目录下存在对应文件

内容的提问来源于stack exchange,提问作者Tanabodin Kamol

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:48:00