如何在 Ubuntu 20.04 上使用 nginx 反向代理安装 Rocket.chat如何在 Ubuntu 20.04 上使用 nginx 反向代理安装 Rocket.chat如何在 Ubuntu 20.04 上使用 nginx 反向代理安装 Rocket.chat如何在 Ubuntu 20.04 上使用 nginx 反向代理安装 Rocket.chat
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 20.04 上使用 nginx 反向代理安装 Rocket.chat

如果您正在寻找开源自托管聊天平台,那么 Rocketchat 可能是最佳选择。 Rocket chat 可以作为不同沟通渠道的替代品,例如 slack、mattermost 等。Rocket chat 具有不同的功能,例如群聊、视频会议,并且您可以将实时聊天与其他平台集成。在本文中,我们将学习如何使用 Let's 加密 SSL 证书来设置自托管 Rocketchat 系统。

先决条件

  1. 新鲜的ubuntu服务器
  2. Root 访问权限或 sudo 特权帐户
  3. 服务器IP指向的域名
  4. 用于下载应用程序的互联网连接

安装所需的包和依赖项

在安装软件包之前,使用以下命令更新 Ubuntu 系统

sudo apt-get update -y

系统更新完成后,使用以下命令配置 apt 安装 MongoDB 包。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

输出 :

要将 Node.js 配置为能够使用 apt 包管理器进行安装,请运行以下命令。

sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

输出 :

现在安装构建工具 Nodejs、MongoDB 和graphicsmagick:

sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

输出 :

现在安装继承和n,以及Rocketchat所需的节点版本。

sudo npm install -g inherits n && sudo n 12.18.4

要检查安装的 Nodejs 版本,请运行以下命令。

node --version

输出 :

v12.18.4

安装 Rocketchat

我们已经安装了所需的依赖项。现在,在这一步中,我们将下载 Rocket Chat 应用程序并将其安装在 Ubuntu 20.04 上。

使用以下命令下载最新版本的 Rocketchat。

curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp

输出 :

提取下载的应用程序。您可以选择您喜欢的目录来存储提取的文件。在此示例中,我已将文件提取到 /tmp 目录中。

tar -xvzf /tmp/rocket.chat.tgz -C /tmp

现在安装 Rocketchat。本文中使用/opt目录进行安装。您可以选择任何目录。

cd /tmp/bundle/programs/server && npm install

输出 :

sudo mv /tmp/bundle /opt/Rocket.Chat

配置Rocket.Chat服务

创建rocketchat用户,设置Rocket.Chat应用目录的正确权限并创建Rocket.Chat服务。

sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

要创建 Rocketchat.service,请在终端上运行以下命令

cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

例子 :

现在我们需要设置 MongoDB 存储引擎和复制。之后,启用并启动 mongoDB:

sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
sudo systemctl enable mongod && sudo systemctl start mongod
mongo --eval "printjson(rs.initiate())"

输出 :

现在使用以下命令启动并启用 Rocket.Chat 服务:

sudo systemctl enable rocketchat && sudo systemctl start rocketchat

验证 Rocket.Chat 服务状态”

sudo systemctl status rocketchat

输出 :

Nginx安装和反向代理配置

要为 Rocket.Chat 配置 nginx 反向代理,请使用以下命令安装 nginx

sudo apt install nginx

为 Rocketchat 创建 nginx 虚拟主机配置。

sudo nano /etc/nginx/conf.d/rocketchat.conf

现在粘贴以下内容并保存文件

upstream backend {
server 127.0.0.1:3000;
}

server {
listen 80;

server_name your_rocketchat_domain_name;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;

location / {
proxy_pass http://backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}

检查nginx配置文件

sudo nginx -t

重启并启用nginx服务

sudo systemctl restart nginx
sudo systemctl enable nginx

现在访问您的 Rocketchat 域

http://your_rocketchat_domain

您将获得网络设置向导,完成它并开始使用 Rocket.Chat

Nginx 作为 SSL 反向代理

我们仅使用 HTTP 反向代理配置 Rocket.Chat。要将 nginx 配置为 SSL 反向代理,您将需要证书文件。编辑 nginx vhost 文件并粘贴以下内容。

sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend {
server 127.0.0.1:3000;
}

server {
listen 443 ssl;
Server_name your_rocketchat_domain_name;
client_max_body_size 200M;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_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 https;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}

笔记 :

生成或购买 ssl 证书并在以下配置参数中指向您的证书文件的目录。

ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]

检查nginx配置文件

sudo nginx -t

重启nginx服务

sudo systemctl restart nginx

访问 Rocketchat

配置反向代理后,您可以使用以下 URL 访问 Rocket.Chat:

https://you_rocket_chat_domain

您将获得 Rocket.Chat 网页设置向导。完成设置并开始使用您的自托管 Rocket.Chat。

结论

在本文中,我们学习了如何在 Ubuntu 20.04 上安装和配置自托管 Rocket 聊天。另外,我还介绍了如何安装和配置 nginx 以使用 Let's Encrypt SSL 证书进行反向代理。

©2015-2025 艾丽卡 support@alaica.com