用 Python 和 Flask 写个最小后端,跑在ECS上
【摘要】 从零搭一个能用的 Python 后端:用 Flask 写几个接口,本地跑通后部署到华为云 ECS,用 gunicorn 当生产服务器,再配好安全组。附一张部署拓扑图,适合刚接触后端部署的同学。
一、先写个能跑的Flask应用
Flask 是 Python 里最轻的 Web 框架,几行就能起服务。下面是个最小接口:
# app.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/health')
def health():
return jsonify({'status': 'ok'})
@app.route('/api/hello/<name>')
def hello(name):
return jsonify({'msg': f'hello, {name}'})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
本地 python app.py,浏览器开 http://127.0.0.1:5000/api/health 就能看到返回。注意 host='0.0.0.0',不然云上外部访问不到。
二、生产环境别用自带的 server
Flask 自带的开发服务器扛不住并发,也容易被打挂。上生产用 gunicorn:
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
-w 4 是开 4 个工作进程,按 CPU 核数来定。把它写成启动命令或 systemd 服务,机器重启也能自动拉起。
三、扔到华为云ECS上

大致步骤:
- 在华为云买一台ECS(入门选通用型就行),装好 Python 3 和 pip。
- 把代码传上去(git 拉取或 scp 都行),
pip install -r requirements.txt。 - 用 gunicorn 把服务起在
5000端口。 - 关键一步:到 ECS 的安全组里,放行 5000(或你前面挂的 443)入方向,否则外网死活连不上——这是新手最常见的卡点。
四、几个上线前该想到的点
| 项目 | 建议 |
|---|---|
| 数据库 | 用云数据库 GaussDB/RDS,放内网,别把库也暴露公网 |
| 配置 | 密钥、地址走环境变量,别硬编码进代码 |
| 端口 | 只开必要端口,安全组最小化放行 |
| 进程 | 用 systemd 或 supervisor 托管,崩了自动重启 |
小结
把后端跑上云,真正的门槛不在写代码,而在"网络和安全组"那几步。Flask 负责把接口写出来,gunicorn 负责稳稳跑着,ECS 安全组负责决定谁能访问。这三块串起来,你的第一个云上后端就成了。后面想加数据库、加域名、加 HTTPS,都是在这个骨架上往上搭。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)