这份文档专门针对使用的 阿里云 + 宝塔面板 环境。
Python 项目从 0 到 1 部署全流程手册
第一阶段:云端环境准备
-
域名解析 (DNS):
-
登录阿里云控制台,进入"云解析 DNS"。
-
添加 A 记录 :主机记录填
agentgenerate(或其他子域名),记录值填你的服务器公网 IP120.xx.xx.xx。
-
-
安全组放行:
- 在阿里云安全组中,务必放行以下端口:80 (HTTP), 443 (HTTPS), 8888 (宝塔面板), 以及你的项目端口 8000。
第二阶段:申请与部署 SSL 证书
-
证书申请 :在阿里云"数字证书管理服务"中申请免费证书,绑定域名
agentgenerate.xxxxx.com。 -
获取密钥 :证书签发后,下载 Nginx 版本的证书,得到
.pem(证书) 和.key(私钥) 文件内容。 -
宝塔部署 :在宝塔 Python 项目管理的 SSL 选项卡中,将内容粘贴进去并保存。
第三阶段:宝塔面板项目创建
-
上传代码 :将项目代码上传至服务器目录(如
/www/wwwroot/agent_generate)。 -
创建项目:
-
打开宝塔"Python 项目管理器",点击"添加项目"。
-
启动方式 :选择 gunicorn。
-
项目端口 :填
8000。 -
入口文件 :选择你的主程序(如
app.py),应用名称填app。
-
-
安装依赖 :在"模块"或"终端"中安装
fastapi,uvicorn,gunicorn等必要库。
第四阶段:配置 Nginx 反向代理 (核心关键)
在项目的"配置文件"中,确保反向代理部分配置如下,以支持 HTTPS 和正确的域名转发:
Nginx
location / {
proxy_pass http://127.0.0.1:8000; # 转发到本地Python端口
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; # 告知后端当前是HTTPS
# 支持 WebSocket 和长连接
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
第五阶段:服务启动与验证
-
重载 Nginx :修改配置文件后,必须在宝塔"软件商店"找到 Nginx,点击"服务" -> "重载配置"。
-
重启 Python 项目:在项目管理器中点击"重启"。
-
最终验证:
-
访问
https://你的域名/docs查看交互式 API 文档。 -
如果页面显示"连接已重置",请检查 Nginx 是否重启,以及 443 端口是否被拦截。
-
💡 避坑小贴士
-
不要在 root 终端直接运行
python app.py:这会因为找不到虚拟环境的依赖而报错。请始终使用宝塔界面或进入虚拟环境操作。 -
HTTPS 强制跳转:建议在宝塔 SSL 界面开启"强制 HTTPS",避免用户误入不安全的 HTTP 页面。