AI 工具上线实战:从服务器配置到 HTTPS、备份与安全加固全流程指南
AI工具 生产环境部署指南|附完整命令
随着大模型、智能体(Agent)、RAG 知识库、AI 编码助手、AI 客服等应用逐渐进入企业生产环境,“把 AI 工具跑起来”已经不再是难点,真正的挑战在于:如何稳定、安全、可观测、可扩展地部署 AI 工具。
很多团队在测试环境中可以很快完成 Demo,但一到生产环境就会遇到各种问题:
- 服务偶发超时;
- 大模型接口调用成本失控;
- 向量数据库查询变慢;
- 文件上传后解析失败;
- 容器重启后数据丢失;
- 日志分散,排查困难;
- 没有鉴权,存在安全风险;
- 并发一高,应用直接崩溃。
本文将以一个通用 AI 工具生产环境部署方案为例,讲解如何在 Linux 服务器上完成从环境准备、Docker 安装、项目部署、Nginx 反向代理、HTTPS 配置、进程守护、日志监控、安全加固到备份恢复的完整流程,并附带可直接执行的命令。
说明:本文适用于大多数 AI Web 工具、RAG 应用、Agent 平台、LLM API 封装服务、企业内部 AI 助手等场景。你可以根据自己的项目结构进行调整。
一、生产环境部署目标
在正式部署之前,我们需要明确生产环境的基本目标。
一个合格的 AI 工具生产部署方案,至少应该满足以下要求:
| 目标 | 说明 |
|---|---|
| 稳定运行 | 服务异常后能够自动重启 |
| 数据持久化 | 数据库、向量库、上传文件不能因容器重启丢失 |
| 安全访问 | 支持 HTTPS、鉴权、端口限制 |
| 易于维护 | 使用 Docker Compose 统一管理 |
| 可观测 | 有日志、监控、健康检查 |
| 易扩展 | 后续可以增加 Worker、GPU 服务、队列等 |
| 可备份 | 数据库和文件可以定期备份 |
| 成本可控 | 对模型调用、并发、缓存做限制 |
本文默认使用以下技术栈作为示例:
- 操作系统:Ubuntu 22.04 LTS
- 容器:Docker + Docker Compose
- Web 服务:AI 应用后端
- 反向代理:Nginx
- HTTPS:Let’s Encrypt / Certbot
- 数据库:PostgreSQL
- 缓存:Redis
- 向量数据库:Qdrant
- 部署方式:Docker Compose
- 域名示例:
ai.example.com
二、服务器基础准备
1. 推荐服务器配置
不同类型的 AI 工具对服务器资源要求不同。如果只是调用外部大模型 API,例如 OpenAI、Claude、通义千问、DeepSeek、智谱等,服务器本身不需要特别强的 GPU。
调用外部模型 API 的推荐配置
| 场景 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| 小型个人项目 | 2 核 | 4GB | 40GB |
| 企业内部工具 | 4 核 | 8GB | 80GB |
| 多用户知识库 | 8 核 | 16GB | 200GB |
本地部署模型的推荐配置
如果你需要部署本地大模型,例如 Qwen、Llama、DeepSeek-R1-Distill 等,则需要额外考虑 GPU。
| 场景 | GPU | 显存 |
|---|---|---|
| 7B 模型推理 | NVIDIA T4 / RTX 3060 | 12GB+ |
| 14B 模型推理 | RTX 3090 / 4090 | 24GB+ |
| 32B 以上模型 | A100 / H100 | 40GB+ |
本文主要以“应用服务部署”为主,不强制依赖 GPU。
2. 更新系统软件包
登录服务器:
ssh root@your_server_ip
更新系统:
apt update && apt upgrade -y
安装常用工具:
apt install -y \
curl \
wget \
git \
vim \
htop \
unzip \
net-tools \
lsof \
ca-certificates \
gnupg \
ufw
查看系统版本:
lsb_release -a
查看服务器资源:
free -h
df -h
nproc
三、创建部署用户
生产环境不建议长期使用 root 用户运行应用。我们可以创建一个专门的部署用户。
adduser deploy
将用户加入 sudo 组:
usermod -aG sudo deploy
切换到部署用户:
su - deploy
测试 sudo 权限:
sudo whoami
如果返回:
root
说明权限正常。
四、安装 Docker 和 Docker Compose
1. 卸载旧版本 Docker
sudo apt remove -y docker docker-engine docker.io containerd runc
2. 添加 Docker 官方源
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
添加软件源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新索引:
sudo apt update
3. 安装 Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker:
sudo systemctl enable docker
sudo systemctl start docker
查看 Docker 版本:
docker --version
docker compose version
4. 配置当前用户使用 Docker
sudo usermod -aG docker $USER
重新登录服务器,或执行:
newgrp docker
测试 Docker:
docker run hello-world
五、规划项目目录
生产环境建议统一将项目放在 /opt 或 /srv 目录下。
创建目录:
sudo mkdir -p /opt/ai-tools
sudo chown -R deploy:deploy /opt/ai-tools
cd /opt/ai-tools
推荐目录结构如下:
/opt/ai-tools
├── app
│ ├── Dockerfile
│ ├── package.json
│ ├── requirements.txt
│ └── src
├── docker-compose.yml
├── .env
├── data
│ ├── postgres
│ ├── redis
│ ├── qdrant
│ └── uploads
├── logs
└── backups
创建基础目录:
mkdir -p data/postgres data/redis data/qdrant data/uploads logs backups
六、编写环境变量文件
生产环境中,数据库密码、模型 API Key、JWT 密钥、对象存储密钥等敏感配置不应该写死在代码中,而应该放在 .env 文件里。
创建 .env:
vim .env
写入示例内容:
# 应用配置
APP_NAME=AI Tools
APP_ENV=production
APP_PORT=3000
APP_BASE_URL=https://ai.example.com
# 数据库配置
POSTGRES_DB=aitools
POSTGRES_USER=aitools_user
POSTGRES_PASSWORD=change_this_strong_password
# Redis 配置
REDIS_PASSWORD=change_this_redis_password
# Qdrant 配置
QDRANT_API_KEY=change_this_qdrant_api_key
# JWT
JWT_SECRET=change_this_long_random_jwt_secret
# 大模型 API 配置
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_BASE_URL=https://api.openai.com/v1
DEFAULT_MODEL=gpt-4o-mini
# 上传目录
UPLOAD_DIR=/app/uploads
# 日志级别
LOG_LEVEL=info
修改权限:
chmod 600 .env
生成随机密钥可以使用:
openssl rand -hex 32
例如:
openssl rand -hex 32
openssl rand -base64 48
七、编写 Docker Compose 文件
下面是一个适用于 AI 工具生产环境的 docker-compose.yml 示例,包含应用、PostgreSQL、Redis、Qdrant 四个服务。
创建文件:
vim docker-compose.yml
写入内容:
services:
app:
build:
context: ./app
dockerfile: Dockerfile
container_name: ai-tools-app
restart: always
env_file:
- .env
ports:
- "127.0.0.1:3000:3000"
volumes:
- ./data/uploads:/app/uploads
- ./logs:/app/logs
depends_on:
- postgres
- redis
- qdrant
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
postgres:
image: postgres:16
container_name: ai-tools-postgres
restart: always
env_file:
- .env
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "127.0.0.1:5432:5432"
volumes:
- ./data/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7
container_name: ai-tools-redis
restart: always
command: >
redis-server
--requirepass ${REDIS_PASSWORD}
--appendonly yes
ports:
- "127.0.0.1:6379:6379"
volumes:
- ./data/redis:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
interval: 30s
timeout: 10s
retries: 3
qdrant:
image: qdrant/qdrant:latest
container_name: ai-tools-qdrant
restart: always
environment:
QDRANT__SERVICE__API_KEY: ${QDRANT_API_KEY}
ports:
- "127.0.0.1:6333:6333"
- "127.0.0.1:6334:6334"
volumes:
- ./data/qdrant:/qdrant/storage
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6333/healthz"]
interval: 30s
timeout: 10s
retries: 3
这里有几个关键点:
restart: always:容器异常退出后自动重启;- 数据目录都挂载到了宿主机;
- 服务端口只绑定到
127.0.0.1,避免数据库直接暴露到公网; - 使用
healthcheck检查服务健康状态; .env统一管理生产配置。
八、准备应用 Dockerfile
如果你的 AI 工具是 Node.js 项目,可以使用下面的 Dockerfile。
进入应用目录:
mkdir -p app
cd app
vim Dockerfile
Node.js 示例:
FROM node:20-alpine
WORKDIR /app
RUN apk add --no-cache curl
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["npm", "run", "start"]
如果你的 AI 工具是 Python FastAPI 项目,可以使用下面的 Dockerfile。
FROM python:3.11-slim
WORKDIR /app
RUN apt-get update && apt-get install -y \
curl \
gcc \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 3000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "3000", "--workers", "2"]
如果是 FastAPI,推荐提供一个健康检查接口:
from fastapi import FastAPI
app = FastAPI()
@app.get("/health")
def health():
return {"status": "ok"}
如果是 Express.js,也建议提供:
app.get('/health', (req, res) => {
res.json({ status: 'ok' })
})
九、启动服务
回到项目根目录:
cd /opt/ai-tools
构建镜像:
docker compose build
启动服务:
docker compose up -d
查看容器状态:
docker compose ps
查看日志:
docker compose logs -f app
查看所有服务日志:
docker compose logs -f
进入应用容器:
docker exec -it ai-tools-app sh
进入 PostgreSQL:
docker exec -it ai-tools-postgres psql -U aitools_user -d aitools
测试 Redis:
docker exec -it ai-tools-redis redis-cli -a change_this_redis_password ping
如果返回:
PONG
说明 Redis 正常。
测试 Qdrant:
curl http://127.0.0.1:6333/healthz
测试应用:
curl http://127.0.0.1:3000/health
十、安装并配置 Nginx
生产环境通常不直接暴露应用端口,而是使用 Nginx 作为反向代理。
安装 Nginx:
sudo apt install -y nginx
启动并设置开机自启:
sudo systemctl enable nginx
sudo systemctl start nginx
创建站点配置:
sudo vim /etc/nginx/sites-available/ai-tools.conf
写入:
server {
listen 80;
server_name ai.example.com;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_connect_timeout 60s;
proxy_send_timeout 300s;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/ai-tools.conf /etc/nginx/sites-enabled/ai-tools.conf
删除默认配置:
sudo rm -f /etc/nginx/sites-enabled/default
检查 Nginx 配置:
sudo nginx -t
重载 Nginx:
sudo systemctl reload nginx
访问:
http://ai.example.com
如果域名解析正确,应该可以访问到应用。
十一、配置 HTTPS 证书
生产环境必须启用 HTTPS,尤其是 AI 工具通常涉及用户输入、企业文档、API Key、聊天记录等敏感数据。
安装 Certbot:
sudo apt install -y certbot python3-certbot-nginx
申请证书:
sudo certbot --nginx -d ai.example.com
按提示填写邮箱并同意协议。完成后,Certbot 会自动修改 Nginx 配置。
检查自动续期:
sudo certbot renew --dry-run
查看证书状态:
sudo certbot certificates
重载 Nginx:
sudo systemctl reload nginx
访问:
https://ai.example.com
十二、配置防火墙
建议只开放 SSH、HTTP、HTTPS 端口。
启用 UFW:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
查看状态:
sudo ufw status
输出类似:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
如果 SSH 使用了非默认端口,例如 2222,应执行:
sudo ufw allow 2222/tcp
确认无误后再启用防火墙,避免把自己锁在服务器外。
十三、生产环境安全加固
1. 禁止数据库公网访问
在上面的 docker-compose.yml 中,数据库端口已经绑定到:
127.0.0.1:5432:5432
这表示 PostgreSQL 只能被本机访问,公网无法连接。
你可以检查监听端口:
sudo ss -tunlp
确认没有出现:
0.0.0.0:5432
2. 限制 Nginx 请求体大小
如果 AI 工具支持上传文档,建议限制上传文件大小。
client_max_body_size 50M;
如果文件解析服务较慢,适当增加超时时间:
proxy_read_timeout 300s;
3. 设置强密码和密钥
以下内容必须使用强随机值:
- PostgreSQL 密码;
- Redis 密码;
- JWT Secret;
- Qdrant API Key;
- 管理员密码;
- 大模型 API Key。
生成随机值:
openssl rand -hex 32
4. 不要提交 .env
在项目仓库中添加 .gitignore:
vim .gitignore
写入:
.env
data/
logs/
backups/
node_modules/
__pycache__/
5. 配置 SSH 安全
编辑 SSH 配置:
sudo vim /etc/ssh/sshd_config
建议配置:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
重启 SSH:
sudo systemctl restart ssh
注意:关闭密码登录前,请确保你已经正确配置 SSH Key,否则可能无法登录服务器。
生成本地 SSH Key:
ssh-keygen -t ed25519 -C "deploy@ai-tools"
上传公钥:
ssh-copy-id deploy@your_server_ip
十四、日志管理
Docker 默认日志如果不限制,长时间运行后可能占满磁盘。建议配置 Docker 日志轮转。
创建或编辑 Docker daemon 配置:
sudo vim /etc/docker/daemon.json
写入:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
重启 Docker:
sudo systemctl restart docker
重新启动项目:
cd /opt/ai-tools
docker compose up -d
查看日志占用:
docker system df
查看应用日志:
docker compose logs -f --tail=200 app
如果要导出最近 1000 行日志:
docker compose logs --tail=1000 app > logs/app-latest.log
十五、数据库备份与恢复
生产环境必须有备份策略,尤其是 AI 知识库类工具,通常包含:
- 用户数据;
- 聊天记录;
- 文档元数据;
- 向量索引;
- 上传文件;
- 系统配置。
1. PostgreSQL 手动备份
cd /opt/ai-tools
docker exec ai-tools-postgres pg_dump \
-U aitools_user \
-d aitools \
> backups/postgres_$(date +%F_%H-%M-%S).sql
压缩备份:
gzip backups/postgres_*.sql
2. PostgreSQL 恢复
先将 SQL 文件解压:
gunzip backups/postgres_2025-01-01_12-00-00.sql.gz
恢复:
cat backups/postgres_2025-01-01_12-00-00.sql | \
docker exec -i ai-tools-postgres psql -U aitools_user -d aitools
3. 备份上传文件
tar -czf backups/uploads_$(date +%F_%H-%M-%S).tar.gz data/uploads
4. 备份 Qdrant 数据
如果 Qdrant 数据量不大,可以直接备份挂载目录:
tar -czf backups/qdrant_$(date +%F_%H-%M-%S).tar.gz data/qdrant
5. 编写自动备份脚本
创建脚本:
vim backup.sh
写入:
#!/bin/bash
set -e
BASE_DIR="/opt/ai-tools"
BACKUP_DIR="$BASE_DIR/backups"
DATE=$(date +%F_%H-%M-%S)
cd "$BASE_DIR"
mkdir -p "$BACKUP_DIR"
echo "开始备份 PostgreSQL..."
docker exec ai-tools-postgres pg_dump \
-U aitools_user \
-d aitools \
> "$BACKUP_DIR/postgres_$DATE.sql"
gzip "$BACKUP_DIR/postgres_$DATE.sql"
echo "开始备份 uploads..."
tar -czf "$BACKUP_DIR/uploads_$DATE.tar.gz" data/uploads
echo "开始备份 qdrant..."
tar -czf "$BACKUP_DIR/qdrant_$DATE.tar.gz" data/qdrant
echo "删除 14 天前的备份..."
find "$BACKUP_DIR" -type f -mtime +14 -delete
echo "备份完成:$DATE"
授权:
chmod +x backup.sh
测试执行:
./backup.sh
添加定时任务:
crontab -e
每天凌晨 2 点备份:
0 2 * * * /opt/ai-tools/backup.sh >> /opt/ai-tools/logs/backup.log 2>&1
十六、应用更新与回滚
1. 更新代码
如果项目来自 Git 仓库:
cd /opt/ai-tools/app
git pull
回到部署目录:
cd /opt/ai-tools
重新构建并启动:
docker compose build app
docker compose up -d app
查看状态:
docker compose ps
docker compose logs -f --tail=200 app
2. 零停机优化思路
单机 Docker Compose 很难做到严格意义的零停机,但可以通过以下方式降低影响:
- 使用 Nginx 代理多个应用实例;
- 应用启动前先健康检查;
- 数据库迁移向后兼容;
- 避免在高峰期发布;
- 发布前先备份数据库;
- 使用蓝绿部署或滚动发布。
3. 快速回滚
如果使用 Git,可以查看提交记录:
cd /opt/ai-tools/app
git log --oneline
回退到指定版本:
git checkout
重新构建:
cd /opt/ai-tools
docker compose build app
docker compose up -d app
如果需要回到主分支:
cd /opt/ai-tools/app
git checkout main
十七、性能优化建议
AI 工具的性能瓶颈通常不只在 Web 服务,还可能出现在大模型接口、Embedding、向量检索、文件解析、数据库查询等环节。
1. 增加应用 Worker
如果是 Python FastAPI,可以增加 Uvicorn Worker:
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "3000", "--workers", "4"]
如果是 Gunicorn:
gunicorn main:app \
-k uvicorn.workers.UvicornWorker \
-w 4 \
-b 0.0.0.0:3000
2. 使用 Redis 缓存
适合缓存:
- 用户会话;
- 模型配置;
- 热门知识库查询结果;
- 重复 Embedding 结果;
- API 限流计数。
3. 控制大模型并发
外部大模型 API 通常有速率限制。建议在应用层做:
- 每用户请求频率限制;
- 每 IP 请求频率限制;
- 队列排队;
- 超时控制;
- 失败重试;
- 熔断降级。
4. 配置 Nginx 限流
在 Nginx 主配置中加入:
sudo vim /etc/nginx/nginx.conf
在 http 块中加入:
limit_req_zone $binary_remote_addr zone=ai_limit:10m rate=10r/s;
站点配置中加入:
location / {
limit_req zone=ai_limit burst=20 nodelay;
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
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;
}
检查并重载:
sudo nginx -t
sudo systemctl reload nginx
十八、监控与排障命令
1. 查看容器状态
docker compose ps
2. 查看资源占用
docker stats
3. 查看系统资源
htop
free -h
df -h
4. 查看端口监听
sudo ss -tunlp
5. 查看 Nginx 日志
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
6. 查看应用日志
docker compose logs -f app
7. 查看数据库日志
docker compose logs -f postgres
8. 重启单个服务
docker compose restart app
9. 重启全部服务
docker compose restart
10. 查看最近异常日志
docker compose logs --tail=500 app | grep -i error
十九、常见问题与解决方案
问题 1:Nginx 返回 502 Bad Gateway
排查应用是否正常:
docker compose ps
docker compose logs -f app
curl http://127.0.0.1:3000/health
如果应用没有启动,查看容器日志。常见原因包括:
- 环境变量缺失;
- 数据库连接失败;
- 端口不一致;
- 应用启动命令错误;
- 依赖安装失败。
问题 2:上传大文件失败
检查 Nginx 配置:
client_max_body_size 50M;
修改后重载:
sudo nginx -t
sudo systemctl reload nginx
同时确认应用本身是否限制上传大小。
问题 3:HTTPS 证书申请失败
检查域名解析:
ping ai.example.com
检查 80 端口是否开放:
sudo ufw status
检查 Nginx 是否正常:
sudo nginx -t
sudo systemctl status nginx
重新申请:
sudo certbot --nginx -d ai.example.com
问题 4:磁盘空间占满
查看磁盘:
df -h
查看 Docker 占用:
docker system df
清理未使用镜像:
docker image prune -a
清理未使用容器、网络、缓存:
docker system prune
注意:清理前确认不会删除重要数据。不要随意删除 Docker volume 或项目的
data目录。
问题 5:大模型接口响应慢
可以从以下方向优化:
- 调整模型,例如使用更快的轻量模型;
- 增加流式输出;
- 开启缓存;
- 降低上下文长度;
- 对文档分块做优化;
- 减少无效工具调用;
- 对用户请求做队列化;
- 设置合理超时和重试策略。
二十、生产部署检查清单
上线前建议逐项检查:
- [ ] 域名已解析到服务器;
- [ ] Docker 和 Docker Compose 已安装;
- [ ]
.env使用强密码且权限为600; - [ ] 数据库未暴露到公网;
- [ ] Redis 未暴露到公网;
- [ ] Qdrant 未暴露到公网;
- [ ] Nginx 配置通过
nginx -t; - [ ] HTTPS 证书配置成功;
- [ ] 防火墙只开放必要端口;
- [ ] 应用有健康检查接口;
- [ ] 容器配置了自动重启;
- [ ] Docker 日志配置了轮转;
- [ ] 数据库和上传文件已配置备份;
- [ ] 备份脚本已测试;
- [ ] 模型 API Key 未提交到代码仓库;
- [ ] 管理后台已设置强密码;
- [ ] 已配置限流或基础防刷;
- [ ] 已准备回滚方案;
- [ ] 已记录关键运维命令。
二十一、推荐的一键启动命令汇总
如果你已经完成配置,可以使用以下命令快速部署:
cd /opt/ai-tools
docker compose build
docker compose up -d
docker compose ps
docker compose logs -f --tail=200 app
更新应用:
cd /opt/ai-tools/app
git pull
cd /opt/ai-tools
docker compose build app
docker compose up -d app
docker compose logs -f --tail=200 app
重启应用:
cd /opt/ai-tools
docker compose restart app
停止全部服务:
cd /opt/ai-tools
docker compose down
启动全部服务:
cd /opt/ai-tools
docker compose up -d
查看资源:
docker stats
备份数据:
cd /opt/ai-tools
./backup.sh
检查 Nginx:
sudo nginx -t
sudo systemctl reload nginx
检查证书:
sudo certbot certificates
sudo certbot renew --dry-run
结语
AI 工具的生产环境部署并不是简单地执行一条启动命令。真正稳定的生产环境,需要同时考虑服务运行、数据持久化、网络安全、HTTPS、日志、备份、限流、监控、回滚和成本控制。
对于个人项目来说,Docker Compose + Nginx + HTTPS 已经足够支撑大多数场景;对于企业级 AI 平台,则可以在此基础上继续演进到 Kubernetes、对象存储、消息队列、分布式向量数据库、统一监控告警、灰度发布和多模型网关。
如果你刚开始部署 AI 工具,建议先从本文这套方案落地:
先保证服务稳定上线,再逐步补齐监控、备份、安全和扩展能力。