如何在ECS上部署Flask应用?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本文由云服务器代理商:云枢国际yunshuguoji。
前置准备:
阿里云国际 Linux ECS,安全组放行 5000/80/443 端口,不开放全网 0.0.0.0/0
本地 Flask 项目源码
1、SSH 登录 ECS 服务器
终端 SSH 连接实例公网 IP
2、安装 Python 与依赖工具
系统自带 Python3,安装 pip
安装虚拟环境(隔离项目包,避免冲突)
plaintext
python3 -m venv flask_env
source flask_env/bin/activate
3、上传项目代码
SFTP 上传本地 Flask 压缩包,解压到服务器文件夹;或 git 拉取代码
进入项目目录,安装框架依赖
plaintext
pip install flask
有 requirements.txt 则执行:pip install -r requirements.txt
4、本地测试运行
plaintext
flask run --host=0.0.0.0
浏览器访问 ECS公网IP:5000,确认页面正常
5、后台常驻运行(关闭终端不中断)
安装 Gunicorn 进程托管
plaintext
pip install gunicorn
启动,绑定0.0.0.0:5000
gunicorn -w 2 -b 0.0.0.0:5000 app:app
搭配 pm2 实现开机自启、日志查看
6、可选:Nginx 反向代理
安装 Nginx,转发 80/443 流量到 5000 端口,绑定域名、配置 SSL 证书实现 HTTPS 访问
简易避坑:‘
启动不加--host=0.0.0.0,外网无法访问
安全组没放行 5000 端口,访问超时
不用进程托管,断开 SSH 程序直接停止
国际 ECS 使用海外 pip 源,下载依赖速度更快