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

相关推荐
全栈练习生2 小时前
AI Agent 沙箱
python·ai
SEO_juper3 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
用户8356290780514 小时前
使用 Python 对 Excel 工作表进行排序
后端·python
for_ever_love__4 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
用户8356290780515 小时前
使用 Python 合并 PowerPoint 演示文稿
后端·python
weixin_461769405 小时前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_966949655 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈弄潮儿5 小时前
Python实战第1期:Python环境搭建与第一个程序
python
心易行者5 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
weixin199701080165 小时前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存