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

Docker部署Flask应用访问80端口仅显示Nginx默认页面如何解决?

问题根因定位

你访问到Nginx默认页说明Nginx服务启动正常,但Nginx没有加载正确的转发规则把请求转给uWSGI,基本是配置路径错误导致的,排查和修复步骤如下:


具体排查修复步骤

  1. 确认Nginx配置加载是否正确
    首先进入运行中的容器查看Nginx实际加载的完整配置:
docker exec -it minex_container nginx -T

如果输出的配置里没有把请求转发到/tmp/uwsgi.socket的规则,说明你的自定义配置没有生效。

  1. 修复Nginx配置路径问题
    你当前在Dockerfile中直接把nginx.conf复制到/etc/nginx,但Debian系的Nginx默认会优先加载/etc/nginx/sites-enabled/default里的默认站点配置,所以才会返回默认页。修改Dockerfile,添加删除默认配置、把自定义站点配置放到正确路径的逻辑:
# 原有COPY nginx.conf的行修改为,假设你的nginx.conf是站点配置不是主配置
COPY nginx.conf /etc/nginx/sites-available/minex_app
RUN rm /etc/nginx/sites-enabled/default \
    && ln -s /etc/nginx/sites-available/minex_app /etc/nginx/sites-enabled/
  1. 确认Nginx配置内容正确
    你的nginx.conf需要包含如下核心转发规则,确保请求能正确转给uWSGI:
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi.socket;
    }
}
  1. 确认uWSGI配置正确
    检查你的uwsgi.ini是否包含如下配置,确保能正确加载Flask应用、socket权限正常:
[uwsgi]
module = app:app
master = true
processes = 5
socket = /tmp/uwsgi.socket
chmod-socket = 666
vacuum = true
die-on-term = true

这里module = app:app对应你app.py里的Flask实例名,如果你定义的实例名不是app需要对应修改。


验证修复

修改配置后重新构建镜像启动容器即可正常访问应用。

内容的提问来源于stack exchange,提问作者Lukas D. Sauer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:45:04