前言 蜻蜓I即时通讯系统是一款不依赖第三方服务的私有化即时通讯解决方案,本指南将详细介绍如何使用宝塔面板在CentOS系统上完成系统的完整部署。私有化部署意味着您可以将整个系统部署在自己的服务器上,完全掌控数据安全和系统运行。 系统架构概述环境准备1. 服务器连接工具 - FinalShellFinalShell是一款功能强大的SSH工具,用于连接和管理Linux服务器。 作用: - 提供图形化界面操作服务器
- 支持文件上传下载
- 支持多会话管理
配置步骤: - 下载安装FinalShell
- 添加服务器连接:
- 名称:自定义标识
- 主机:服务器IP地址
- 端口:SSH端口(默认22)
- 用户名:root
- 密码/密钥:服务器认证方式
2. 服务器基本要求组件 最低要求 推荐配置
CPU 2核 4核及以上
内存 4GB 8GB及以上
磁盘 50GB 100GB SSD
系统 CentOS 7.x/8.x CentOS 8.x
宝塔面板安装安装命令详解yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec命令分解: 安装后操作: - 记录安装完成时显示的面板访问地址、用户名和密码
- 通过浏览器访问面板地址
- 登录后绑定宝塔账号(需注册)
基础环境配置1. 软件安装通过宝塔面板安装以下必要组件: 软件名称 作用 安装方式
Nginx Web服务器和反向代理 宝塔软件商店
MongoDB NoSQL数据库存储消息和用户数据 手动安装
Redis 缓存服务,提高系统响应速度 宝塔软件商店
JDK 1.8 Java运行环境 手动安装
2. JDK环境配置配置步骤: - 上传JDK 1.8安装包到/opt/java目录
- 编辑/etc/profile文件,添加以下内容:
# Java环境变量配置JAVA_HOME=/opt/java/jdk1.8.0_131JRE_HOME=$JAVA_HOME/jreCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$JAVA_HOME/bin:$PATHexport PATH JAVA_HOME CLASSPATH使配置生效: source /etc/profile验证安装: java -version预期输出应显示Java版本信息。
常见问题解决: - 如果出现bad ELF interpreter错误,执行:yum install glibc.i686
文件目录结构准备1. 资源存储目录mkdir -p /data/www/resourcescd /data/www/resourcesmkdir audio avatar avatar/o avatar/t avatar_r avatar_r/o avatar_r/t gift image image/o image/t other preview temp u video目录作用说明: 目录路径 存储内容
/data/www/resources/audio 音频文件
/data/www/resources/avatar 用户头像(原图)
/data/www/resources/avatar_o 头像缩略图(大)
/data/www/resources/avatar_t 头像缩略图(小)
/data/www/resources/image 聊天图片
/data/www/resources/video 视频文件
2. 数据库目录mkdir -p /data/mongodbmkdir -p /data/mongodb/logs服务部署与配置1. 上传部署包- 通过宝塔文件管理器上传服务器部署包.zip到/opt目录
- 解压后目录结构应包含:
/opt├── mongodb-3.4.0 # MongoDB服务├── redis-4.0.1 # Redis服务├── rocketmq-4.3.2 # 消息队列服务├── spring-boot-imapi # IM核心API服务├── tigase-server-7.1.3 # XMPP协议服务├── shiku-push # 消息推送服务├── message-push # 消息发送服务└── upload # 文件上传服务2. 配置文件修改所有服务都需要修改配置文件中的IP地址为实际服务器IP: 服务名称 配置文件路径 关键配置项
IM-API /opt/spring-boot-imapi/application.properties server.address, mongodb.host
消息推送 /opt/message-push/application.properties push.server.host
XMPP服务 /opt/tigase-server-7.1.3-b4482/etc/init.properties —cluster-node-ip
文件上传 /opt/upload/application.properties file.upload.url
修改示例: # 修改前server.address=192.168.1.100# 修改后(替换为你的服务器IP)server.address=43.154.66.102Nginx配置详解反向代理配置server { listen 80; listen 8094; # 消息推送服务路由 location /mp { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8093; # mp-server端口 } # 公共资源路由 location /public { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8093; # mp-server端口 } # 默认路由到IM-API服务 location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8092; # imapi端口 }}配置说明: - listen:指定监听的端口
- proxy_set_header:传递客户端真实IP
- proxy_pass:将请求转发到后端服务
- 通过不同location实现路由分发
服务启动顺序正确的服务启动顺序对系统稳定运行至关重要: 详细启动命令注册XMPP消息Topicsh bin/mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t xmppMessage 注册用户状态Topicsh bin/mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t userStatusMessage 5. **启动Tigase XMPP服务**:```bashcd /opt/tigase-server-7.1.3-b4482sh start启动IM-API核心服务: cd /opt/spring-boot-imapish start启动消息推送服务: cd /opt/shiku-pushsh start启动消息发送服务: cd /opt/message-pushsh start启动文件上传服务: cd /opt/uploadsh start
安全配置1. 防火墙端口开放在宝塔面板中开放必要的端口: 端口 用途 是否必需
80 HTTP访问 是
443 HTTPS访问 推荐
8092 IM-API服务 是
8094 备用API端口 可选
9876 RocketMQ控制台 可选
3306 MySQL数据库 如使用
27017 MongoDB 如远程连接
2. 安全建议- 修改默认SSH端口(22)
- 禁用root直接登录,使用普通用户+sudo
- 定期备份数据库和重要文件
- 配置HTTPS加密传输
后台管理系统访问访问地址: http://你的服务器IP:8092/pages/console/login.html默认登录凭证:
- 初始化配置:
- 修改系统名称、LOGO等基本信息
- 配置邮件服务器(如需要邮件通知)
- 设置客户端下载地址
常见问题排查1. 服务启动失败排查步骤: - 检查服务日志(通常在服务目录下的logs文件夹)
- 确认端口是否被占用:netstat -tunlp | grep 端口号
- 检查依赖服务是否正常运行(如MongoDB、Redis)
2. 无法访问后台- 检查Nginx是否正常运行:systemctl status nginx
- 检查防火墙设置
- 检查宝塔面板安全组设置
3. 性能优化建议对于高并发场景: - 增加RocketMQ内存配置
- 调整MongoDB连接池大小
- 优化Redis缓存策略
数据库索引优化:
系统维护1. 日常维护命令操作 命令
查看服务状态 `ps aux grep 服务名`
查看服务日志 tail -f /path/to/logfile
重启服务 cd /opt/服务目录 && sh restart
2. 备份策略数据库备份: mongodump -h 127.0.0.1 -d 数据库名 -o /backup/mongodb文件资源备份: tar -czvf /backup/resources.tar.gz /data/www/resources配置备份: tar -czvf /backup/config.tar.gz /opt/*/conf
总结本文详细介绍了蜻蜓I即时通讯系统的完整部署流程,从环境准备到服务配置,再到系统启动和维护。私有化部署虽然初期配置较为复杂,但能提供更高的数据安全性和系统可控性。建议在生产环境部署前,先在测试环境完整演练整个流程,确保所有服务能正常协同工作。 对于大规模部署,可以考虑将不同服务部署在不同服务器上,并通过负载均衡提高系统可用性。同时,建议建立完善的监控系统,实时掌握系统运行状态。
|