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

Ubuntu服务器多Flask应用NGINX路由配置问题排查

解决NGINX反向代理多Flask应用的路径访问问题

你的问题出在NGINX对/dev路径的转发规则处理上,加上缺少必要的代理请求头,导致后端Flask应用无法正确接收请求。按下面的配置调整即可:

修正后的NGINX配置

server {
    server_name api.example.org; # 补上缺失的分号
    listen 80; # 处理HTTP请求,统一跳转到HTTPS
    return 301 https://$host$request_uri;
}

server {
    server_name api.example.org;
    listen 443 ssl; # 监听HTTPS端口
    # Let's Encrypt的证书路径,根据实际情况调整
    ssl_certificate /etc/letsencrypt/live/api.example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.example.org/privkey.pem;

    # 根路径转发到8003端口的Flask应用
    location / {
        proxy_pass http://127.0.0.1:8003;
        # 添加必要的代理请求头,让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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # /dev路径转发到1642端口的Flask应用
    location /dev/ { # 末尾加斜杠,匹配所有以/dev/开头的路径
        proxy_pass http://127.0.0.1:1642/; # 末尾加斜杠,把/dev后的路径映射到后端根路径
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 可选:处理不带斜杠的/dev请求,自动跳转带斜杠的路径
    location = /dev {
        return 301 https://$host/dev/;
    }
}

关键调整说明

  • 补上server_name后的分号:原配置里少了分号,虽然nginx -t通过了,但规范配置避免意外问题。
  • 拆分HTTP和HTTPS server块:原配置用if判断跳转,拆分后更清晰且符合NGINX最佳实践。
  • location /dev/和proxy_pass末尾加斜杠:这是核心!如果不加斜杠,NGINX会把/dev作为路径前缀转发给后端,比如访问api.example.org/dev/hello会转发到http://127.0.0.1:1642/dev/hello,但你的Flask应用大概率没有/dev开头的路由,所以会404。加了斜杠后,NGINX会去掉/dev前缀,把后面的路径直接映射到后端根路径,也就是转发到http://127.0.0.1:1642/hello。
  • 添加代理请求头:Flask需要这些头部来获取正确的请求主机、客户端IP和协议,否则可能出现路由识别错误或无法获取真实IP的问题。

生效配置

修改完配置后,执行以下命令重载NGINX:

sudo nginx -s reload

现在访问https://api.example.org会指向8003端口的应用,访问https://api.example.org/dev/(或/dev下的子路径)会指向1642端口的应用。

内容的提问来源于stack exchange,提问作者Deepesh Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:57:29