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

Flask部署AWS EC2仅根路径可用,其他端点均404,求排查思路

问题排查与解决方案

1. 修正Flask监听地址

Flask默认仅监听本地回环地址127.0.0.1,这会导致只有EC2本机能访问所有端点,公网请求无法直接触达非根路径。修改app.py中的启动代码,将监听地址改为0.0.0.0:

if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)  # 生产环境建议关闭debug模式

修改后重启Flask服务,再通过公网IP访问/test等端点测试。

2. 检查反向代理(如Nginx)配置

如果使用Nginx做反向代理,确保配置文件中location块正确转发所有路径请求,且包含必要的请求头。示例正确配置:

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

    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;
    }
}

配置完成后执行命令重新加载Nginx:

sudo systemctl reload nginx

3. 确认WSGI服务器(如Gunicorn)启动参数

若使用Gunicorn部署,确保启动命令绑定了0.0.0.0而非仅127.0.0.1,且正确指向Flask应用实例:

gunicorn -w 4 -b 0.0.0.0:8000 app:app

其中app:app表示从app.py文件加载名为app的Flask实例,-b指定监听地址和端口。

4. 验证EC2安全组规则

虽然根路径可访问,但仍需确认安全组已开放对应端口(如8000或Nginx使用的80/443)的入站权限,允许所有IP(0.0.0.0/0)访问。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:36:16