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

如果您正在尋找開源自託管聊天平台,那麼 Rocketchat 可能是最佳選擇。 Rocket chat 可以替代不同的溝通渠道,例如 slack、mattermost 等。 Rocket chat 具有不同的功能,例如群聊、視頻會議,您可以將實時聊天與其他平台集成。 在本文中,我們將學習如何使用 Let’s Encrypt SSL 證書設置自託管的 Rocketchat 系統。

先決條件

  1. 新鮮的 ubuntu 服務器
  2. 根訪問或 sudo 特權賬戶
  3. 指向服務器IP的域名
  4. 用於下載應用程序的 Internet 連接

安裝所需的包和依賴項

在安裝軟件包之前,使用以下命令更新 Ubuntu 系統

$ sudo apt-get 更新 -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 三通/etc/apt/sources.list.d/mongodb-org-4.0.list

輸出 :

將 Node.js 配置為能夠使用 易於 包管理器運行以下命令。

$ sudo apt-get -y 更新&& 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

輸出 :

安裝 graphicsmagick

現在安裝inherits和n,以及Rocketchat需要的node版本。

$ sudo npm install -g 繼承 n && sudo 12.18.4

安裝 npm

要檢查安裝的 Nodejs 版本,請運行以下命令。

$節點–版本

輸出:

v12.18.4

安裝火箭聊天

我們已經安裝了所需的依賴項。 現在在這一步中,我們將下載 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

輸出 :

下載 Rocket.chat

提取下載的應用程序。 您可以選擇您喜歡的目錄來存儲提取的文件。 在這 example,我已經在 /tmp 目錄。

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

現在安裝 Rocketchat。 在這篇文章中 /選擇 目錄用於安裝。 您可以更喜歡任何目錄。

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

輸出:

解壓存檔並使用 npm 包管理器安裝 Rocket Chat

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

配置 Rocket.Chat 服務

創建一個 Rocketchat 用戶,為 Rocket.Chat 應用程序目錄設置正確的權限並創建 Rocket.Chat 服務。

$ sudo useradd -M 火箭聊天 && sudo usermod -L Rocketchat $ sudo chown -R Rocketchat:rocketchat /opt/Rocket.Chat

要創建 Rocketchat.service,請在您的終端上運行以下命令

貓 << EOF |sudo tee -a /lib/systemd/system/rocketchat.service [Unit] Description=Rocket.Chat 服務器 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=https:// /localhost:3000/ 端口=3000 [Install] WantedBy=multi-user.target EOF

例子:

Rocket.chat 系統文件

現在我們需要設置 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 啟用 mongod && sudo systemctl start mongod $ mongo –eval “printjson(rs.initiate())”

輸出 :

設置 mongo.db

現在使用以下命令啟動並啟用 Rocket.Chat 服務:

$ sudo systemctl 啟用火箭聊天 && sudo systemctl 啟動火箭聊天

驗證 Rocket.Chat 服務狀態”

$ sudo systemctl 狀態火箭聊天

輸出:

systemctl 狀態火箭聊天

Nginx 安裝和反向代理配置

要為 Rocket.Chat 配置 nginx 反向代理,請使用以下命令安裝 nginx

$ sudo apt安裝nginx

為 Rocketchat 創建 nginx 虛擬主機配置。

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

現在粘貼以下內容並保存文件

上游後端 { 服務器 127.0.0.1:3000; } 服務器 { 聽 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; 位置 / { proxy_pass https://backend/; proxy_http_version 1.1; proxy_set_header 升級 $http_upgrade; proxy_set_header 連接“升級”; proxy_set_header 主機 $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 關閉; } }

檢查nginx配置文件

$ sudo nginx -t

配置nginx

重啟並啟用nginx服務

$ sudo systemctl 重啟 nginx $ sudo systemctl 啟用 nginx

現在訪問您的 Rocketchat 域

https://your_rocketchat_domain

您將獲得 Web 設置嚮導,完成它並開始使用 Rocket.Chat

Nginx 作為 SSL 反向代理

我們僅使用 HTTP 反向代理配置了 Rocket.Chat。 要將 nginx 配置為 SSL 反向代理,您將需要證書文件。 編輯 nginx vhost 文件並粘貼以下內容。

$ sudo nano /etc/nginx/conf.d/rocketchat.conf 上游後端 { 服務器 127.0.0.1:3000; } 服務器 { 聽 443 ssl; 服務器名稱 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; 位置 / { proxy_pass https://backend; proxy_http_version 1.1; proxy_set_header 升級 $http_upgrade; proxy_set_header 連接“升級”; proxy_set_header 主機 $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 關閉; }

筆記 :

生成或購買 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 重啟 nginx

訪問 Rocketchat

配置反向代理後,您可以使用以下 URL 訪問您的 Rocket.Chat:

https://you_rocket_chat_domain

您將獲得 Rocket.Chat 網絡設置嚮導。 完成設置並開始使用您的自託管 Rocket.Chat。

結論

在本文中,我們學習瞭如何在 Ubuntu 20.04 上安裝和配置自託管 Rocket chat。 此外,我還介紹瞭如何使用讓我們加密 SSL 證書的反向代理安裝和配置 nginx。