Ubuntu 16.04에서 Nginx로 Rocket.Chat 서버를 설치하는 방법
이 튜토리얼은 다음 OS 버전에 대해 존재합니다.
- 우분투 20.04(Focal Fossa)
- 우분투 16.04(Xenial Xerus)
이 페이지에서
- 1단계 - Rocket.Chat 종속성 설치
- 2단계 - MongoDB 설치
- 3단계 - MongoDB ReplicaSet 구성
- 4단계 - npm 및 nodejs 설치
- 5단계 - Rocket.Chat 서버 설치
- 6단계 - Nginx를 Rocket.Chat용 역방향 프록시로 설치 및 구성\n
- 7단계 - Rocket.Chat 테스트
- 참조
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/