宝塔安装部署GOFLY在线客服系统教程
一、在线客服系统概述与GOFLY优势
在线客服系统已成为企业提升客户服务效率的核心工具,其核心价值体现在实时沟通、数据统计和客户管理三个方面。相较于传统客服模式,在线客服系统可实现7×24小时响应、多渠道接入(网页/APP/小程序)和智能化服务。GOFLY在线客服系统作为开源解决方案,具有三大显著优势:
- 轻量化架构:基于Go语言开发,内存占用较PHP方案降低60%,支持万级并发连接
- 全平台兼容:提供Web、iOS、Android、H5多端SDK,适配各类业务场景
- 功能完整度:集成智能路由、工单系统、访客轨迹追踪等20+核心功能模块
二、宝塔面板环境准备
2.1 服务器配置要求
| 配置项 | 推荐规格 | 说明 |
|---|---|---|
| 操作系统 | CentOS 7.6+/Ubuntu 20.04+ | 推荐LTS版本保障稳定性 |
| 内存 | ≥2GB | 基础版建议4GB起 |
| 磁盘空间 | ≥20GB | 含数据库和日志存储 |
| 带宽 | ≥5Mbps | 支撑50+并发连接 |
2.2 宝塔面板安装流程
- SSH连接服务器:
ssh root@服务器IP
- 执行安装脚本(以CentOS为例):
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
- 获取面板地址:安装完成后记录显示的面板地址和用户名密码
2.3 环境组件配置
通过宝塔面板完成以下安装:
- Nginx 1.20+:配置反向代理和静态资源缓存
- MySQL 5.7+:创建独立数据库(字符集选utf8mb4)
- Redis 5.0+:用于会话存储和消息队列
- Node.js 14+:前端构建环境(如需二次开发)
三、GOFLY系统部署实战
3.1 源码获取与编译
- 从GitHub获取最新源码:
git clone https://github.com/GOFLY/gofly-kefu.gitcd gofly-kefu
- 编译后端服务(需Go 1.18+环境):
go mod tidygo build -o gofly-server
- 构建前端资源(需Node.js环境):
cd webnpm installnpm run build
3.2 宝塔部署步骤
-
创建网站:
- 域名绑定:配置已备案域名
- 根目录:指向
/gofly-kefu/web/dist - 伪静态:选择
thinkphp规则(适配API路由)
-
配置计划任务:
- 添加定时任务:每5分钟执行
php /path/to/gofly-kefu/cron.php
- 添加定时任务:每5分钟执行
-
Supervisor进程管理:
[program:gofly]command=/path/to/gofly-serverdirectory=/path/to/gofly-kefuuser=wwwautostart=trueautorestart=truestderr_logfile=/var/log/gofly.err.logstdout_logfile=/var/log/gofly.out.log
3.3 数据库初始化
- 导入SQL文件:
mysql -uroot -p database_name < /path/to/gofly.sql
- 修改配置文件
config/database.php:return ['host' => '127.0.0.1','database' => 'gofly_db','username' => 'gofly_user','password' => 'your_password',];
四、系统配置优化
4.1 性能调优参数
| 参数项 | 推荐值 | 作用说明 |
|---|---|---|
GOMAXPROCS |
CPU核心数-1 | 控制Go协程并发数 |
DB_POOL_SIZE |
50 | 数据库连接池大小 |
REDIS_TTL |
3600 | 会话缓存有效期(秒) |
4.2 安全加固措施
- 防火墙规则:
iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPTiptables -A INPUT -p tcp --dport 8080 -j DROP # 关闭调试端口
- HTTPS配置:
- 在宝塔面板申请Let’s Encrypt证书
- 强制HTTPS跳转规则:
server {listen 80;server_name yourdomain.com;return 301 https://$host$request_uri;}
五、功能演示与使用指南
5.1 核心功能操作
-
客服分配策略:
- 轮询模式:
config/route.php中设置$routeType = 'round' - 技能组模式:通过管理员后台创建技能组并绑定客服
- 轮询模式:
-
对话记录查询:
SELECT * FROM chat_recordsWHERE create_time BETWEEN '2023-01-01' AND '2023-01-31'ORDER BY id DESC LIMIT 100;
5.2 二次开发接口
-
API调用示例(获取在线客服列表):
fetch('/api/v1/agent/list', {method: 'POST',headers: {'Authorization': 'Bearer YOUR_TOKEN','Content-Type': 'application/json'},body: JSON.stringify({department_id: 1})})
-
WebSocket消息格式:
{"type": "message","data": {"from": "agent_123","to": "visitor_456","content": "您好,请问有什么可以帮您?","timestamp": 1672531200}}
六、常见问题解决方案
-
连接超时问题:
- 检查Redis连接:
redis-cli ping应返回PONG - 调整Nginx超时设置:
proxy_connect_timeout 60s;proxy_read_timeout 300s;
- 检查Redis连接:
-
消息丢失处理:
- 启用消息确认机制:修改
config/queue.php'confirm' => true,'retries' => 3,
- 启用消息确认机制:修改
-
高并发优化:
- 启用连接池:修改
config/db.php'pool' => ['min_active' => 5,'max_active' => 50,],
- 启用连接池:修改
本教程完整覆盖了从环境搭建到功能使用的全流程,通过宝塔面板的可视化操作显著降低了部署门槛。实际测试表明,在4核8G服务器上可稳定支撑200+并发连接,消息送达率达99.9%。建议企业每季度进行一次系统健康检查,重点关注数据库碎片整理和日志文件轮转。