私有化部署Rocket.Chat在线聊天平台

2024-08-23 20:34:14 浏览数 (1)

Rocket.Chat是什么

Rocket.Chat是一个开源的可高度定制的通信平台,用JavaScript开发,该项目功能齐全,并且还有各系统app。

部署环境

  • 已经安装好Docker及Docker-compose(有宝塔 软件商店安装Docker管理器即可)必需品
  • RocketChat的版本:v4.5.1(2022-3-12的最新版)
  • Node.js —v14.18.3,Mongodb (需要4.2以上)

开始部署

bash 代码:

代码语言:javascript复制
# 创建并进入工作目录
mkdir /rocketchat
cd /rocketchat
# 下载编排文件
curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml -O

根据自己的需求修改编排文件后保存,运行以下命令启动服务:

bash 代码:

代码语言:javascript复制
docker-compose up -d

在经过一段时间的等待,服务器启动后访问http://ip:3000

然后我们跟着安装向导的指引一步步填写信息完成安装即可。

安装向导.png安装向导.png

反向代理及使用app

配置反向代理

想使用域名访问的话,我们可以反向代理Rocket.Chat的端口,因为我安装了宝塔,所以操作很简单,然后配置SSL证书即可。

宝塔反向代理配置.png宝塔反向代理配置.png

但如果想要使用安卓移动应用使用的话,必须使用SSL(https)才可以,SSL可以在域名商或者其他平台进行申请,宝塔可以直接申请Let's Encrypt证书。

做完这一步之后,我们使用app连接,会发现提示Websocket已于此伺服器上禁用。请联络系统管理员。这是因为nginx没有启用Websocket。

Nginx开启Websocket

找到nginx.conf编辑它,在http上下文中增加如下配置,

text 代码:

代码语言:javascript复制
 map $http_upgrade $connection_upgrade {
  default upgrade;
  ''   close;
 }

server上下文中增加如下配置

text 代码:

代码语言:javascript复制
  location / {
   proxy_pass http://websocket;
   proxy_read_timeout 300s;
   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_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection $connection_upgrade;
}
}

最后,我们到反向代理配置文件中添加如下代码

text 代码:

代码语言:javascript复制
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
反向代理配置文件.png反向代理配置文件.png

到这,教程就结束了,可以正常使用app了。

参考资料

  1. Rocket.Chat官方文档
  2. Nginx代理WebSocket方法

0 人点赞