用 Python 和 Flask 写个最小后端,跑在ECS上

举报
茉莉风铃 发表于 2026/09/04 10:43:23 2026/09/04
【摘要】 从零搭一个能用的 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上

image.png

大致步骤:

  1. 在华为云买一台ECS(入门选通用型就行),装好 Python 3 和 pip。
  2. 把代码传上去(git 拉取或 scp 都行),pip install -r requirements.txt
  3. 用 gunicorn 把服务起在 5000 端口。
  4. 关键一步:到 ECS 的安全组里,放行 5000(或你前面挂的 443)入方向,否则外网死活连不上——这是新手最常见的卡点。

四、几个上线前该想到的点

项目 建议
数据库 用云数据库 GaussDB/RDS,放内网,别把库也暴露公网
配置 密钥、地址走环境变量,别硬编码进代码
端口 只开必要端口,安全组最小化放行
进程 用 systemd 或 supervisor 托管,崩了自动重启

小结

把后端跑上云,真正的门槛不在写代码,而在"网络和安全组"那几步。Flask 负责把接口写出来,gunicorn 负责稳稳跑着,ECS 安全组负责决定谁能访问。这三块串起来,你的第一个云上后端就成了。后面想加数据库、加域名、加 HTTPS,都是在这个骨架上往上搭。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。