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

相关推荐
想会飞的蒲公英1 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel2 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记2 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名2 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code3 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook3 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao5 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099676 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing6 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
赶紧写完去睡觉7 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda