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

部署Flask-Nginx应用时无法使用80端口的问题求助

问题解决步骤

核心原因

80端口已经被Nginx占用(你的Nginx配置里已经设置listen 80),所以Gunicorn无法再绑定80端口。正确的架构是让Nginx监听80端口对外提供服务,再反向代理到Gunicorn的8080端口,这样用户就能通过80端口访问你的Flask应用。


1. 修正Nginx配置

你当前的location路径配置错误——location定义的是浏览器请求的URL路径,不是服务器上的本地文件路径。修改后的配置如下:

server {
        listen 80;
        server_name <public_ip>;

        # 若希望通过 http://<public_ip>/ 直接访问应用,用这个location
        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        # 若希望通过子路径(比如 http://<public_ip>/myapp)访问,替换成下面的配置
        # location /myapp/ {
        #         proxy_pass http://127.0.0.1:8080/;  # 注意末尾的斜杠,保证路径转发正确
        #         proxy_set_header Host $host;
        #         proxy_set_header X-Real-IP $remote_addr;
        #         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # }
}

2. 保持Gunicorn的启动配置

继续用8080端口启动Gunicorn,建议绑定本地回环地址(更安全,仅服务器内部可访问):

PYTHONPATH=<project_name>/backend/src gunicorn <project_name>.backend.src.main:flask_app -b 127.0.0.1:8080

3. 重启Nginx使配置生效

sudo systemctl restart nginx

4. 验证访问

直接在浏览器输入http://<public_ip>(或对应的子路径),即可通过80端口访问你的Flask应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:17:10