第十五章:从开发环境到生产部署(完整上线流程)
这一章是整套系统的“最后一公里”。
前面我们完成的是:
一个具备 AI 能力、异步架构、可靠性设计的完整系统
但它仍然停留在:
开发环境可运行状态
这一章要解决的是:
如何让它稳定运行在真实服务器上,并长期在线
15.1 生产环境目标
上线后的系统必须满足:
✔ 断电可恢复
✔ 崩溃自动重启
✔ HTTPS可访问
✔ 企业微信回调稳定
✔ AI服务可用
✔ 日志可追踪
15.2 生产架构最终形态
┌──────────────┐
│ 企业微信服务器 │
└──────┬───────┘
│ HTTPS
▼
┌─────────────────┐
│ OpenResty/Nginx │
└──────┬──────────┘
│ reverse proxy
▼
┌────────────────────┐
│ FastAPI Webhook │
└──────┬─────────────┘
│
▼
┌──────────────┐
│ Redis Queue │
└────┬─────────┘
▼
┌──────────────────┐
│ Worker (AI系统) │
└────┬─────────────┘
▼
┌───────────────────┐
│ DeepSeek / LLM API │
└───────────────────┘
15.3 Ubuntu服务器初始化
📌 更新系统
sudo apt update && sudo apt upgrade -y
📌 安装基础工具
sudo apt install -y git curl vim ufw
15.4 安装 Docker 环境
📌 安装 Docker
curl -fsSL https://get.docker.com | sh
📌 安装 Compose
sudo apt install docker-compose-plugin -y
📌 启动 Docker
sudo systemctl enable docker
sudo systemctl start docker
15.5 项目部署结构
服务器目录:
/opt/wecom-bot/
│
├── app/
├── docker/
├── logs/
├── .env
├── docker-compose.yml
15.6 Docker生产配置
📌 docker-compose.yml
version: "3.9"
services:
api:
build: .
container_name: wecom-api
restart: always
ports:
- "8000:8000"
env_file:
- .env
depends_on:
- redis
worker:
build: .
container_name: wecom-worker
restart: always
command: python -m app.queue.worker
env_file:
- .env
depends_on:
- redis
redis:
image: redis:7
container_name: wecom-redis
restart: always
ports:
- "6379:6379"
15.7 OpenResty反向代理
📌 nginx配置
server {
listen 443 ssl;
server_name api.xxx.com;
ssl_certificate /etc/letsencrypt/live/api.xxx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.xxx.com/privkey.pem;
location /wecom/ {
proxy_pass http://127.0.0.1:8000/wecom/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
15.8 HTTPS证书配置
📌 使用 certbot
sudo apt install certbot python3-certbot-nginx
📌 申请证书
sudo certbot --nginx -d api.xxx.com
15.9 防火墙配置
sudo ufw allow 22
sudo ufw allow 443
sudo ufw allow 80
sudo ufw enable
15.10 .env生产配置
WECOM_CORP_ID=xxx
WECOM_SECRET=xxx
WECOM_TOKEN=xxx
WECOM_AES_KEY=xxx
DEEPSEEK_API_KEY=xxx
REDIS_HOST=redis
REDIS_PORT=6379
15.11 一键启动系统
docker compose up -d --build
15.12 服务验证
📌 检查容器
docker ps
📌 检查API
curl http://localhost:8000/health
📌 检查回调
企业微信后台:
https://api.xxx.com/wecom/callback
15.13 系统运行链路(生产版)
企业微信
↓ HTTPS
OpenResty
↓
FastAPI
↓
Redis Queue
↓
Worker
↓
DeepSeek
↓
企业微信回复
15.14 生产环境优化点
✔ 自动重启
restart: always
✔ 容器隔离
API / Worker / Redis 分离
✔ 可扩展Worker
worker replicas = N
✔ 日志集中
/logs 统一收集
15.15 常见生产问题
❌ 回调失败
原因:
- HTTPS未配置
- 域名不合法
- 路由错误
❌ AI不可用
原因:
- API KEY错误
- 网络问题
- 超时设置过短
❌ Worker不消费
原因:
- Redis未连接
- 队列Key错误
15.16 系统最终能力
✔ 完整能力
✔ 企业微信AI机器人
✔ 异步架构
✔ Redis队列
✔ Worker系统
✔ DeepSeek AI
✔ Token管理
✔ 幂等机制
✔ 重试机制
✔ 限流机制
✔ TraceID可观测
✔ Docker生产部署
✔ HTTPS上线
15.17 本书最终总结
这个系统已经不是“Demo”,而是:
👉 一个可以真正部署在企业环境中的 AI 助手系统
🚀 全书完成总结(非常重要)
如果把整个系统压缩成一句话:
企业微信 = AI入口
Redis = 异步中枢
Worker = AI引擎执行器
DeepSeek = 大脑
OpenResty = 安全入口
Docker = 运行载体