웹사이트 검색

Ubuntu 16.04에서 Nginx로 Rocket.Chat 서버를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 우분투 20.04(Focal Fossa)
  • 우분투 16.04(Xenial Xerus)

이 페이지에서

  1. 1단계 - Rocket.Chat 종속성 설치
  2. 2단계 - MongoDB 설치
  3. 3단계 - MongoDB ReplicaSet 구성
  4. 4단계 - npm 및 nodejs 설치
  5. 5단계 - Rocket.Chat 서버 설치
  6. 6단계 - Nginx를 Rocket.Chat용 역방향 프록시로 설치 및 구성\n
  7. 7단계 - Rocket.Chat 테스트
  8. 참조

Rocket.Chat은 팀 커뮤니케이션을 위한 무료 오픈 소스 온라인 채팅 솔루션으로 온라인 채팅과 같은 나만의 슬랙을 구축할 수 있습니다. Rocket.Chat은 Meteor 전체 스택 프레임워크를 사용하여 개발된 Javascript를 기반으로 합니다. Rocket.Chat은 자체 비공개 채팅 플랫폼을 구축하려는 회사를 위한 훌륭한 솔루션입니다.

이 튜토리얼에서는 Rocket.Chat을 사용하여 자신의 채팅 서버를 구축하는 방법을 보여줍니다. 설치에는 최신 Ubuntu LTS 16.04 서버를 사용하고 Rocket.Chat 애플리케이션의 리버스 프록시로 Nginx를 사용하겠습니다.

전제 조건

  • 우분투 16.04
  • 루트 권한\n

1단계 - Rocket.Chat 종속성 설치

ssh(또는 터미널)를 사용하여 서버에 로그인하고 sudo su를 입력하여 루트 액세스 권한을 얻습니다.

ssh 
sudo su

Ubuntu 리포지토리를 업데이트합니다.

apt-get update

다음으로 Rocket.Chat에 필요한 새 패키지를 설치합니다.

apt-get install curl graphicsmagick build-essential

2단계 - MongoDB 설치

Rocket.Chat을 설치하려면 MongoDB가 필요합니다. 이 단계에서는 MongoDB 리포지토리에서 MongoDB 3.2를 설치합니다.

패키지에 액세스할 수 있도록 MongoDB 키 서버를 추가합니다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

그런 다음 아래 명령을 사용하여 MongoDB 리포지토리를 추가합니다.

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

리포지토리를 업데이트하고 apt 명령으로 MongoDB를 설치합니다.

apt-get update
apt-get install mongodb-org

부팅 시 실행할 MongoDB를 추가하고 시작합니다.

systemctl enable mongod
systemctl start mongod

MongoDB는 포트 27017에서 시작되었습니다.

3단계 - MongoDB ReplicaSet 구성

성능을 향상시키기 위해 Rocket.Chat은 MongoDB ReplicaSet를 사용합니다. 이 단계에서는 MongoDB 구성 파일을 편집하여 간단한 MongoDB ReplicaSet를 구성합니다.

vim으로 mongod.conf 파일 편집:

vim /etc/mongod.conf

localhost IP에서만 실행되는 MongoDB를 비활성화하려면 24행 시작 부분에 "#"를 추가합니다.

net:
    port: 27017
    #bindIp: 127.0.0.1

아래의 34행에 ReplicaSet 구성을 추가합니다.

#replication:                                                               
replication:                                                               
   oplogSizeMB: 1                                                          
   replSetName: rs0

저장 및 종료.

MongoDB 서비스를 다시 시작합니다.

systemctl restart mongod

다음으로 MongoDB 셸을 시작하고 ReplicaSet을 시작합니다.

export LC_ALL=C
mongo
rs.initiate()

결과 시작:

{
  "info2" : "no configuration specified. Using a default configuration for the set",
  "me" : "nyanko-sensei:27017",
  "ok" : 1
}

ok 값이 1인지 확인하십시오. 결과가 다른 숫자이면 문제가 있음을 의미합니다.

4단계 - npm 및 nodejs 설치

이 단계에서는 Ubuntu 저장소에서 nodejs 및 npm을 설치합니다. 그런 다음 npm 명령으로 n 패키지를 설치하여 특정 nodejs 버전을 가져옵니다. 최신 Rocket.Chat 버전에는 nodejs 4.5가 필요합니다.

Ubuntu 저장소에서 nodejs 및 npm을 설치합니다.

apt-get install nodejs npm

다음으로 npm 명령어를 사용하여 n 패키지를 시스템에 전체적으로 설치합니다.

npm install -g n

n 명령을 사용하여 nodejs 버전 4.5를 다운로드하고 설정합니다.

sudo n 4.5

마지막으로 nodejs 버전을 확인합니다.

node --version
npm -v

5단계 - Rocket.Chat 서버 설치

Rocket.Chat(최신 버전)을 /var/www/ 디렉토리에 설치합니다.

최신 버전의 Rocket.Chat을 다운로드하고 압축을 풉니다.

curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar -xzvf rocket.chat.tgz

새 /var/www/ 디렉터리를 만들고 번들 디렉터리의 이름을 Rocket.Chat으로 바꾼 다음 이동합니다.

mkdir -p /var/www/
mv bundle Rocket.Chat
mv Rocket.Chat /var/www/

Rocket.Chat 디렉토리로 이동하여 필요한 환경 변수를 설정하고 Rocket.Chat 서버를 시작하십시오.

cd /var/www/Rocket.Chat/
cd programs/server/
npm install

cd ../../
export ROOT_URL=http://192.168.1.110:3000/
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js

Rocket.Chat이 설치되면 웹 브라우저를 열고 포트 3000에서 서버 IP 주소를 방문합니다. - 192.168.1.110:3000.

6단계 - Nginx를 Rocket.Chat용 역방향 프록시로 설치 및 구성

5단계에서 Rocket.Chat을 독립 실행형 애플리케이션으로 설치했습니다. 이 튜토리얼에서는 안전하고 빠른 설정을 위해 https 연결에서 Nginx 웹 서버 뒤에서 Rocket.Chat을 실행합니다.

apt 명령으로 Nginx를 설치합니다.

apt-get install nginx

새 SSL 디렉터리를 만듭니다.

mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/

SSL 인증서 파일을 생성하고 키 파일의 권한을 변경합니다.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocket-chat.crt -keyout /etc/nginx/ssl/rocket-chat.key
chmod 400 rocket-chat.key

다음으로, sites-available 디렉토리에 새 rocket-chat 가상 호스트 파일을 만듭니다.

cd /etc/nginx/sites-available/
vim rocket-chat

아래에 새 가상 호스트 구성을 붙여넣습니다.

# Upstreams
upstream backend {
    server 127.0.0.1:3000;
}

# Redirect Options
server {
  listen 80;
  server_name rocket-chat.co;
  # enforce https
  return 301 https://$server_name$request_uri;
}

# HTTPS Server
server {
    listen 443;
    server_name rocket-chat.co;

    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
    ssl_certificate /etc/nginx/ssl/rocket-chat.crt;
    ssl_certificate_key /etc/nginx/ssl/rocket-chat.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE

    location / {
        proxy_pass http://192.168.1.110:3000/;
        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;
    }
}

저장 및 종료.

새 도메인 이름 rocket-chat.co로 Rocket.Chat을 실행하겠습니다. 자신의 도메인 이름을 사용하고 표시될 때마다 구성 파일에서 바꾸십시오.

Rocket.Chat 가상 호스트를 활성화하고 구성 파일을 테스트합니다.

ln -s /etc/nginx/sites-available/rocket-chat /etc/nginx/sites-enabled/rocket-chat
nginx -t

오류 메시지가 없는지 확인하십시오.

Nginx 웹 서버를 다시 시작합니다.

systemctl restart nginx

7단계 - Rocket.Chat 테스트

Nginx는 Rocket.Chat 서버의 리버스 프록시로 구성되었으며 지금 Rocket.Chat을 실행하려면 환경 변수를 업데이트해야 합니다.

아래의 새 변수를 사용하여 Rocket.Chat을 실행합니다.

cd /var/www/Rocket.Chat/
export ROOT_URL=https://rocket-chat.co
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js

웹 브라우저에서 다음 URL을 엽니다: rocket-chat.co(또는 사용자 지정 도메인 이름) - https 연결로 리디렉션됩니다.

새 계정 등록 링크를 클릭하여 첫 번째 관리자 계정을 만듭니다.

이름, 이메일, 비밀번호를 입력하고 REGISTER A NEW ACCOUNT를 클릭합니다.

도메인 이름과 함께 새 SITE-URL을 사용하도록 확인합니다. 예를 클릭합니다.

사용자 이름을 등록하고 이 사용자 이름 사용을 클릭합니다.

관리 사용자가 생성되었으며 여기에 Rocket.Chat 대시보드가 있습니다. 채팅을 시작하고 팀을 위한 나만의 채널을 만들 수 있습니다.

Rocket.Chat은 우분투 16.04에서 Nginx 웹 서버와 함께 설치되었습니다.

새 환경 변수를 사용한 후의 결과:

참조

  • https://rocket.chat/docs/installation/manual-installation/ubuntu/