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

在EC2上部署带多路由的Flask应用遇404问题求助

解决EC2上Flask多路由404问题

检查WSGI配置(Apache+mod_wsgi场景)

如果是按照指南用Apache搭配mod_wsgi部署,大概率是配置未正确转发所有路由请求:

  1. 打开你的WSGI文件(比如app.wsgi),确认内容正确指向Flask应用实例:
# 替换为你的Flask主文件名(不带.py)和实例名
from your_flask_app import app as application

# 若用工厂函数初始化应用,改为:
# from your_flask_app import create_app
# application = create_app()
  1. 检查Apache虚拟主机配置文件(通常在/etc/httpd/conf.d/your_app.conf),确保所有路径请求都转发到WSGI:
<VirtualHost *:80>
    ServerName 你的EC2公网DNS

    WSGIDaemonProcess flask_app user=ec2-user group=ec2-user threads=5
    WSGIScriptAlias / /var/www/flask_app/app.wsgi

    <Directory /var/www/flask_app>
        WSGIProcessGroup flask_app
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>

    # 静态文件配置(如有需要)
    Alias /static /var/www/flask_app/static
    <Directory /var/www/flask_app/static>
        Require all granted
    </Directory>
</VirtualHost>

核心是WSGIScriptAlias /要指向你的WSGI文件,确保所有路径请求都交给Flask处理。

检查Flask路由代码

确认你的路由定义无拼写或语法错误,示例:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return "首页"

# 确保其他路由格式正确
@app.route('/about')
def about():
    return "关于页面"

@app.route('/user/<username>')
def show_user(username):
    return f"用户:{username}"

重启服务并验证

修改配置后重启Apache生效:

sudo systemctl restart httpd

如果用的是Nginx+Gunicorn,需检查Nginx配置是否将所有请求转发到Gunicorn端口:

server {
    listen 80;
    server_name 你的EC2公网DNS;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /static {
        alias /var/www/flask_app/static;
    }
}

重启Nginx和Gunicorn:

sudo systemctl restart nginx
sudo systemctl restart gunicorn

排查日志定位问题

若仍未解决,查看服务错误日志找具体原因:

  • Apache错误日志:/var/log/httpd/error_log
  • Nginx错误日志:/var/log/nginx/error.log

内容的提问来源于stack exchange,提问作者Hasan Abdul Ghaffar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:32:42