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

Flask应用显示NGINX默认页问题求助(example2异常)

排查Flask应用返回Nginx默认页的问题

嘿,看起来你碰到了Flask+Nginx部署里的经典问题——一个应用好好的,另一个直接跳Nginx默认页,我来帮你一步步捋清楚可能的原因:

1. 先检查Nginx的完整配置(最可能的问题)

你只贴了example1的server块配置,大概率是example2对应的server块缺失或者配置有误:

  • 去Nginx的配置目录(一般是/etc/nginx/或者/etc/nginx/sites-available/)看看有没有example2.domain.net相关的配置文件
  • 如果没有,直接加一个类似example1的server块,注意端口不能和example1重复:
    server {
        listen 80;
        listen [::]:80;
        server_name example2.domain.net;
        location / {
            proxy_pass http://127.0.0.1:5001; # 这里要换成example2实际运行的端口,别和example1的5000撞了
            # 最好加上这些头信息,避免Flask获取不到正确的请求信息
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
  • 如果已经有配置,仔细核对server_name是不是和你访问的域名完全一致,proxy_pass的端口是不是和example2的Flask端口匹配

2. 确认example2的Flask应用真的在运行

别光看Nginx,先确保后端服务没问题:

  • 用端口检查命令看看进程状态:netstat -tulpn | grep 你的example2端口,确认有Flask(或者Gunicorn/uWSGI)进程在监听这个端口
  • 在服务器本地直接请求一下:curl http://127.0.0.1:你的example2端口,看看能不能返回正常的页面内容,而不是报错

3. 验证Nginx配置语法并重载

就算配置写对了,没重载也白搭:

  • 先检查配置有没有语法错误:nginx -t,看到test is successful再往下走
  • 重载Nginx让新配置生效:systemctl reload nginx(如果是老系统就用service nginx reload)

4. 检查文件权限问题

有时候Nginx没权限访问静态文件或者应用目录也会出问题:

  • 确保example2的应用目录和文件对Nginx运行用户(一般是www-data)有读取权限:chown -R www-data:www-data /path/to/example2
  • 如果你用了Gunicorn/uWSGI托管Flask,也要确认这些进程的运行用户有足够权限

5. 排查DNS和缓存

有时候是本地的锅:

  • 本地电脑执行nslookup example2.domain.net,确认解析出来的IP是你的服务器IP
  • 清一下浏览器缓存,或者用隐私窗口访问,避免旧缓存导致的误导

如果走完这些步骤还是没解决,把example2的Nginx配置和Flask启动命令贴出来,我再帮你深挖问题。

内容的提问来源于stack exchange,提问作者Jules Winnfield

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:27:38