视频教程:BV1Ju4y157gR
视频链接:BV1Ju4y157gR
发布日期:2023-10-20
视频时长:12:45
播放量:1.8万
所属合集:FastGPT 教程系列
视频概要
FastGPT 生产环境运维指南,覆盖数据备份、性能优化、日志排查、版本升级、安全加固等运维知识。适合已经部署了FastGPT并需要稳定运行的用户。
知识点清单
A. 数据备份策略
# MongoDB 备份
# 全量备份
docker exec mongo mongodump --out /data/backup/$(date +%Y%m%d)
# 复制备份到宿主机
docker cp mongo:/data/backup/ ./backup/
# 还原备份
docker exec mongo mongorestore /data/backup/20240101/
# PostgreSQL(向量库)备份
docker exec pg pg_dump -U postgres fastgpt > backup_pg.sql
# 还原PostgreSQL备份
docker exec -i pg psql -U postgres fastgpt < backup_pg.sql
B. 自动备份脚本
#!/bin/bash
# auto_backup.sh - 定时备份FastGPT数据
BACKUP_DIR="/data/fastgpt-backup"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE
# 备份MongoDB
docker exec mongo mongodump --out /data/backup/$DATE
# 备份PostgreSQL
docker exec pg pg_dump -U postgres fastgpt > $BACKUP_DIR/$DATE/pg_backup.sql
# 备份配置文件
cp /path/to/FastGPT/.env $BACKUP_DIR/$DATE/
cp /path/to/FastGPT/docker-compose.yml $BACKUP_DIR/$DATE/
# 删除7天前的备份
find $BACKUP_DIR -mtime +7 -exec rm -rf {} +
echo "备份完成: $DATE"
# 添加到crontab,每天凌晨3点执行
crontab -e
0 3 * * * /path/to/auto_backup.sh >> /var/log/fastgpt_backup.log 2>&1
C. 性能优化
| 优化项 | 措施 | 说明 |
|---|---|---|
| 内存限制 | 设置MongoDB内存上限 | 防止内存耗尽 |
| 连接池 | 配置数据库连接数 | 避免连接过多 |
| 向量索引 | 优化PG索引参数 | 加速检索 |
| CDN加速 | 静态资源CDN分发 | 加快页面加载 |
| 日志清理 | 定期清理旧日志 | 释放磁盘空间 |
# docker-compose.yml 性能优化示例
services:
mongo:
command: --wiredTigerCacheSizeGB 1 # 限制MongoDB内存为1GB
fastgpt:
deploy:
resources:
limits:
memory: 2G # 限制FastGPT容器内存
D. 日志排查
# 查看FastGPT日志
docker logs fastgpt --tail 100 -f
# 查看MongoDB日志
docker logs mongo --tail 50
# 查看PostgreSQL日志
docker logs pg --tail 50
# 常见错误及解决
# 1. ECONNREFUSED - 数据库连接失败,检查数据库容器是否运行
# 2. ENOMEM - 内存不足,增加服务器内存或优化配置
# 3. 429 Too Many Requests - API调用频率超限
# 4. 500 Internal Server Error - 检查.env配置是否正确
E. 版本升级
# 1. 备份数据(重要!)
./auto_backup.sh
# 2. 拉取最新镜像
docker-compose pull
# 3. 重启服务
docker-compose down
docker-compose up -d
# 4. 检查日志确认正常
docker logs fastgpt --tail 20
F. 安全加固
| 措施 | 操作 | 重要程度 |
|---|---|---|
| 修改默认密码 | 修改DEFAULT_ROOT_PSW | ★★★★★ |
| HTTPS | 配置Nginx反向代理+SSL证书 | ★★★★★ |
| 防火墙 | 只开放必要端口(80/443) | ★★★★★ |
| 定期更新 | 及时升级到最新版本 | ★★★★ |
| 访问控制 | 限制IP白名单 | ★★★★ |
| API限流 | 配置请求频率限制 | ★★★ |
Nginx 反向代理配置
server {
listen 443 ssl;
server_name fastgpt.your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:3000;
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;
# WebSocket支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
常见问题
| 问题 | 解答 |
|---|---|
| 磁盘满了怎么办? | 清理Docker旧镜像:docker system prune -a |
| 备份文件太大? | 压缩后备份:tar -czf backup.tar.gz backup/ |
| 数据库性能下降? | 检查索引是否正常,考虑增加内存 |
| 如何监控运行状态? | 使用宝塔面板监控或部署Prometheus+Grafana |
| 服务自动重启? | 在docker-compose中添加restart: always |
学习建议
- 运维知识对长期使用FastGPT非常重要,不容忽视
- 定期备份是最基本的运维习惯,务必配置自动备份
- 建议配合宝塔面板使用,图形化管理更方便
- 安全加固在生产环境中必须做,尤其是HTTPS和密码