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

Nginx无法将Flask应用设为默认IP访问的问题求助

解决Nginx仍显示欢迎页及Flask应用路径配置问题

1. 排查Nginx残留默认配置

删除default文件后,Nginx主配置文件/etc/nginx/nginx.conf可能仍保留默认server块。执行命令打开文件检查:

sudo nano /etc/nginx/nginx.conf

若发现类似以下的默认配置块,直接删除后保存退出:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

2. 修正自定义Nginx配置文件

应用1(根路径)配置文件 /etc/nginx/sites-available/creative_space

确保配置监听80端口并正确反向代理到Gunicorn的8000端口,同时处理静态文件:

server {
    listen 80;
    server_name 192.168.50.192;

    location / {
        proxy_pass http://127.0.0.1:8000;
        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;
    }

    location /static {
        alias /home/myname/creative_space/static;
        expires 30d;
    }
}

应用2(/annsquared路径)配置文件 /etc/nginx/sites-available/annsquared

需配置路径前缀,同时确保Flask应用支持子路径(若未配置,需修改Flask代码):

server {
    listen 80;
    server_name 192.168.50.192;

    location /annsquared {
        proxy_pass http://127.0.0.1:8001;
        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;
        # 若Flask未设置子路径,重写请求路径去掉前缀
        rewrite ^/annsquared(.*)$ $1 break;
    }

    location /annsquared/static {
        alias /home/myname/annsquared/static;
        expires 30d;
        rewrite ^/annsquared/static(.*)$ $1 break;
    }
}

若Flask应用未处理子路径,需在app.py中添加配置:

from flask import Flask
# 方式1:设置APPLICATION_ROOT
app = Flask(__name__)
app.config['APPLICATION_ROOT'] = '/annsquared'

# 方式2:初始化时指定url_prefix
# app = Flask(__name__, url_prefix='/annsquared')

3. 验证配置并重启Nginx

先检查Nginx配置语法是否正确:

sudo nginx -t

若提示test is successful,重启Nginx服务:

sudo systemctl restart nginx

4. 确认systemd服务状态

检查两个Gunicorn服务是否正常运行:

sudo systemctl status creative_space.service
sudo systemctl status annsquared.service

若未启动,执行以下命令启动并设置开机自启:

sudo systemctl start creative_space.service
sudo systemctl enable creative_space.service
sudo systemctl start annsquared.service
sudo systemctl enable annsquared.service

5. 清理Nginx缓存(可选)

若页面未更新,清理缓存后重载Nginx:

sudo rm -rf /var/cache/nginx/*
sudo systemctl reload nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:47:26