
蜻蜓I即时通讯系统是一款不依赖第三方服务的私有化即时通讯解决方案,本指南将详细介绍如何使用宝塔面板在CentOS系统上完成系统的完整部署。私有化部署意味着您可以将整个系统部署在自己的服务器上,完全掌控数据安全和系统运行。


FinalShell是一款功能强大的SSH工具,用于连接和管理Linux服务器。
作用:
配置步骤:
组件 | 最低要求 | 推荐配置 |
|---|---|---|
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命令分解:
yum install -y wget:安装wget下载工具wget -O install.sh http://download.bt.cn/install/install_6.0.sh:下载宝塔安装脚本sh install.sh ed8484bec:执行安装脚本,ed8484bec为安装验证码安装后操作:
通过宝塔面板安装以下必要组件:
软件名称 | 作用 | 安装方式 |
|---|---|---|
Nginx | Web服务器和反向代理 | 宝塔软件商店 |
MongoDB | NoSQL数据库存储消息和用户数据 | 手动安装 |
Redis | 缓存服务,提高系统响应速度 | 宝塔软件商店 |
JDK 1.8 | Java运行环境 | 手动安装 |
配置步骤:
/opt/java目录/etc/profile文件,添加以下内容:# Java环境变量配置
JAVA_HOME=/opt/java/jdk1.8.0_131
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATHsource /etc/profilejava -version预期输出应显示Java版本信息。
常见问题解决:
bad ELF interpreter错误,执行:yum install glibc.i686mkdir -p /data/www/resources
cd /data/www/resources
mkdir 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 | 视频文件 |
mkdir -p /data/mongodb
mkdir -p /data/mongodb/logs服务器部署包.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 # 文件上传服务所有服务都需要修改配置文件中的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.102server {
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:传递客户端真实IPproxy_pass:将请求转发到后端服务location实现路由分发正确的服务启动顺序对系统稳定运行至关重要:

cd /opt/mongodb-3.4.0
sh startcd /opt/redis-4.0.1
sh startcd /opt/rocketmq-4.3.2
sh startSrv # 启动NameServer
sh startBroker # 启动Brokersh bin/mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t pushMessage
sh bin/mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t xmppMessage
sh bin/mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t userStatusMessage
5. **启动Tigase XMPP服务**:
```bash
cd /opt/tigase-server-7.1.3-b4482
sh startcd /opt/spring-boot-imapi
sh startcd /opt/shiku-push
sh startcd /opt/message-push
sh startcd /opt/upload
sh start在宝塔面板中开放必要的端口:
端口 | 用途 | 是否必需 |
|---|---|---|
80 | HTTP访问 | 是 |
443 | HTTPS访问 | 推荐 |
8092 | IM-API服务 | 是 |
8094 | 备用API端口 | 可选 |
9876 | RocketMQ控制台 | 可选 |
3306 | MySQL数据库 | 如使用 |
27017 | MongoDB | 如远程连接 |
http://你的服务器IP:8092/pages/console/login.html排查步骤:
netstat -tunlp | grep 端口号systemctl status nginx操作 | 命令 | |
|---|---|---|
查看服务状态 | `ps aux | grep 服务名` |
查看服务日志 | tail -f /path/to/logfile | |
重启服务 | cd /opt/服务目录 && sh restart |
mongodump -h 127.0.0.1 -d 数据库名 -o /backup/mongodbtar -czvf /backup/resources.tar.gz /data/www/resourcestar -czvf /backup/config.tar.gz /opt/*/conf本文详细介绍了蜻蜓I即时通讯系统的完整部署流程,从环境准备到服务配置,再到系统启动和维护。私有化部署虽然初期配置较为复杂,但能提供更高的数据安全性和系统可控性。建议在生产环境部署前,先在测试环境完整演练整个流程,确保所有服务能正常协同工作。
对于大规模部署,可以考虑将不同服务部署在不同服务器上,并通过负载均衡提高系统可用性。同时,建议建立完善的监控系统,实时掌握系统运行状态。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。