阿里云 + 宝塔面板环境Python 项目从 0 到 1 部署全流

这份文档专门针对使用的 阿里云 + 宝塔面板 环境。


Python 项目从 0 到 1 部署全流程手册

第一阶段:云端环境准备

  1. 域名解析 (DNS)

    • 登录阿里云控制台,进入"云解析 DNS"。

    • 添加 A 记录 :主机记录填 agentgenerate(或其他子域名),记录值填你的服务器公网 IP 120.xx.xx.xx

  2. 安全组放行

    • 在阿里云安全组中,务必放行以下端口:80 (HTTP), 443 (HTTPS), 8888 (宝塔面板), 以及你的项目端口 8000

第二阶段:申请与部署 SSL 证书

  1. 证书申请 :在阿里云"数字证书管理服务"中申请免费证书,绑定域名 agentgenerate.xxxxx.com

  2. 获取密钥 :证书签发后,下载 Nginx 版本的证书,得到 .pem (证书) 和 .key (私钥) 文件内容。

  3. 宝塔部署 :在宝塔 Python 项目管理的 SSL 选项卡中,将内容粘贴进去并保存。

第三阶段:宝塔面板项目创建

  1. 上传代码 :将项目代码上传至服务器目录(如 /www/wwwroot/agent_generate)。

  2. 创建项目

    • 打开宝塔"Python 项目管理器",点击"添加项目"。

    • 启动方式 :选择 gunicorn

    • 项目端口 :填 8000

    • 入口文件 :选择你的主程序(如 app.py),应用名称填 app

  3. 安装依赖 :在"模块"或"终端"中安装 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";
}

第五阶段:服务启动与验证

  1. 重载 Nginx :修改配置文件后,必须在宝塔"软件商店"找到 Nginx,点击"服务" -> "重载配置"

  2. 重启 Python 项目:在项目管理器中点击"重启"。

  3. 最终验证

    • 访问 https://你的域名/docs 查看交互式 API 文档。

    • 如果页面显示"连接已重置",请检查 Nginx 是否重启,以及 443 端口是否被拦截。


💡 避坑小贴士

  • 不要在 root 终端直接运行 python app.py:这会因为找不到虚拟环境的依赖而报错。请始终使用宝塔界面或进入虚拟环境操作。

  • HTTPS 强制跳转:建议在宝塔 SSL 界面开启"强制 HTTPS",避免用户误入不安全的 HTTP 页面。

相关推荐
love530love5 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
遇事不決洛必達5 小时前
【Python基础】GIL 锁是什么及其对爬虫的影响
爬虫·python·线程·进程·gil锁
CryptoPP6 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
探物 AI7 小时前
把 MambaOut 塞进 YOLOv11:会有什么样的反应
python·yolo·计算机视觉
如竟没有火炬7 小时前
最大矩阵——单调栈
数据结构·python·线性代数·算法·leetcode·矩阵
阳区欠7 小时前
【LangChain】LLM基础介绍
开发语言·python·langchain
Cosolar7 小时前
保姆级 CrewAI 教程:从零构建多智能体协作系统
人工智能·python·架构
GDAL8 小时前
使用 uv 管理 Python 版本
python·uv·版本
真实的菜8 小时前
Redis 从入门到精通(十二):典型业务场景实战 —— 排行榜、限流器、秒杀系统、Session 共享
数据库·redis·python
cup118 小时前
[开源] Meta Assistant / 告别命令行,我为一堆 Python 脚本做了一个 Windows 任务栏的“家”
windows·python·工具·nuitka·脚本运行