你用 Flask 写好了项目,却不知道怎么部署到云服务器?别急,小编也踩过这坑。从云服务器配置、环境搭建,到上线 Flask 应用,这篇文章一次讲清楚,适合初学者照着一步步操作,让大家都能用最实用的方式把项目顺利跑起来!
一、为什么要把Flask部署到云服务器?
Flask 是一个轻量级的 Python Web 框架,写起来很灵活,也特别适合学习和搭建小型服务。但如果你只在本地运行,别人是无法访问你的网站的。
这时候就需要部署,把项目放到一台公网服务器上。云服务器(像萤光云、LightNode等)就像是 24 小时开机的远程电脑,帮你托管你的项目。你只要有公网 IP,部署成功后,别人就能直接通过网址访问你的应用。
二、 部署步骤详解(Ubuntu + Gunicorn + Nginx)
1. 登录服务器并安装环境
用 SSH 登录你的 Ubuntu 服务器,更新系统并安装 Python3、pip、venv:
apt update
apt install python3 python3-pip python3-venv -y
python3 -m venv venv
source venv/bin/activate
2. 上传或拉取项目代码
小编一般都会把代码推到 GitHub,然后在服务器上 git clone
,再 pip install -r requirements.txt
。如果不习惯,也可以用 scp
把本地目录拷过去。
3. 用 Gunicorn 启动 Flask
安装 Gunicorn:
pip install gunicorn
测试运行:
gunicorn -w 4 -b 0.0.0.0:8000 app:app
能看到“Hello”页面就说明没问题。
4. 安装并配置 Nginx
把 80 端口的流量转发到 8000:
apt install nginx -y
新建 /etc/nginx/sites-available/flask
:
server {
listen 80;
server_name your.domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用并重载:
ln -s /etc/nginx/sites-available/flask /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
三、搭建时长估算
- 环境准备:15 分钟
- 项目上传+依赖安装:10 分钟
- Gunicorn + Nginx 配置:20 分钟
- 整体测试上线:40–60 分钟(首次操作可能更慢)
四、优化建议与小技巧
-
把 Gunicorn 写成 systemd 服务,服务器重启自动启动
- 用 Let’s Encrypt 免费 SSL 证书开启 HTTPS
- 结合 Docker 或 Docker Compose,方便多服务管理
- 配置
ufw
或fail2ban
,做基础的防火墙和登录保护 -
把日志输出到文件,并用
logrotate
做定期切割
五、 Flask在云服务器上的应用场景
1.API 后端:用 Flask 快速搭建 RESTful 接口,给移动端或前端 SPA 提供数据
2.机器学习模型服务:将训练好的模型打包,实时响应预测请求
3.定时任务与后台脚本:用 Flask + Celery 做调度,处理批量数据或发送邮件通知
4.内部管理系统:企业常见的 CRM、ERP 原型、可视化仪表盘
5.物联网网关:收集和分发传感器数据,为 IoT 设备提供轻量级控制接口
六、Flask未来发展趋势
说实话,我一直挺喜欢 Flask 的,它小巧、灵活、不绑架开发者,初学者用起来也很友好。但这两年看得出来,它也在慢慢“成熟”。像 Flask 2.0 开始支持 async/await,我一开始还有点不习惯,但后来用了才发现,对写高并发接口确实有帮助。
我觉得 Flask 的未来不会变成那种“全家桶”式的大而全框架,它还是会保持现在这种“你想怎么组合就怎么来”的风格。但它周边的生态会越来越完善,比如更好用的认证方案、更稳的异步扩展,还有容器化、Serverless 这块也会更适配。就像我现在把 Flask 项目打包丢进 Cloud Run,几乎不需要太多改动就能跑起来,挺香的。
当然,Flask 不是完美的,它确实不太适合那种特别重的企业级系统,但做 API 服务、中小项目、个人作品,它依然是个非常舒服的选择。以后要是它的异步能力再加强一些,再出几个开箱即用的“增强插件”,我估计会越来越多人愿意长期用它。至少我自己现在还没想换掉它。
七、 常见问题
- 最低服务器配置要多大?
1 核 2GB 就能跑个小项目,实际按并发需求调整。 - 需要买域名吗?
用 IP 也能访问,但挂个域名更专业,推荐买个便宜的 .xyz 或 .online。 - 怎么开启 HTTPS?
推荐用 Certbot 配合 Nginx,几分钟就搞定免费证书。 - 项目更新如何部署?
Pull 最新代码,重启 Gunicorn 服务即可。也可用pm2
或supervisor
自动重载。 - 如何监控 Flask 应用?
可接入 Sentry、Prometheus + Grafana 做性能和错误监控。
小编已经将Flask部署到云服务器的每一步都理清楚了,我认为只要按这个流程来操作,哪怕是零基础,也能在一个小时内把项目上线,快去试试吧。