阿里云 + 宝塔面板环境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 页面。

相关推荐
子午13 小时前
【2026计算机毕设~AI项目】鸟类识别系统~Python+深度学习+人工智能+图像识别+算法模型
图像处理·人工智能·python·深度学习
流㶡13 小时前
网络爬虫库与robots.txt规则
python·网络爬虫
2301_7887560613 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
阿部多瑞 ABU13 小时前
`tredomb`:一个面向「思想临界质量」初始化的 Python 工具
前端·python·ai写作
u01092727113 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_6860416113 小时前
Python类型提示(Type Hints)详解
jvm·数据库·python
矢志航天的阿洪13 小时前
从GitHub到本地:Python IGRF库环境配置完全指南
开发语言·python·github
weixin1997010801614 小时前
加盟网 item_search - 根据关键词获取行业列表接口对接全攻略:从入门到精通
java·python
喵手14 小时前
Python爬虫实战:采集巨潮资讯网等上市公司公告数据,通过智能关键词匹配技术识别分红、回购、停牌等重要信息(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集巨潮资讯数据·智能匹配识别分红、回购等信息·csv导出+sqlite
cyforkk14 小时前
11、Java 基础硬核复习:常用类和基础API的核心逻辑与面试考点
java·python·面试