Ubuntu 20.04에 Centrifugo Messaging Server를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Centrifugo 설치
  4. Centrifugo 구성
  5. Centrifugo용 시스템 서비스 파일 만들기
  6. Centrifugo 웹 UI 액세스
  7. 결론

Centrifugo는 무료 오픈 소스 실시간 메시징 서버입니다. 웹 브라우저를 통해 애플리케이션 클라이언트에서 연결하기 위해 WebSocket 및 SockJS를 지원합니다. 빠르고 수백만 개의 동시 연결을 처리할 수 있습니다. 기존 애플리케이션을 쉽게 통합할 수 있습니다. 언어에 구애받지 않으며 API는 모든 프로그래밍 언어에서 사용할 수 있습니다.

이 가이드에서는 Ubuntu 20.04 서버에 Centrifugo를 설치하는 방법을 보여줍니다.

전제 조건

  • Ubuntu 20.04를 실행하는 서버.\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

시작하기 전에 시스템 패키지를 최신 버전으로 업데이트해야 합니다. 다음 명령을 사용하여 업데이트할 수 있습니다.

apt-get update -y

서버가 업데이트되면 다음 단계로 진행할 수 있습니다.

Centrifugo 설치

기본적으로 Centrifugo 패키지는 Ubuntu 20.04 기본 리포지토리에 포함되어 있지 않습니다. 따라서 Git 저장소에서 바이너리를 다운로드해야 합니다.

다음 명령을 사용하여 최신 버전의 Centrifugo를 다운로드할 수 있습니다.

wget https://github.com/centrifugal/centrifugo/releases/download/v2.8.4/centrifugo_2.8.4_linux_amd64.tar.gz

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일의 압축을 풉니다.

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

다음으로 Centrifugo 바이너리를 /usr/bin 디렉터리로 이동합니다.

mv centrifugo /usr/bin

이제 다음 명령을 사용하여 Centrifugo 버전을 확인합니다.

centrifugo version

다음 출력이 표시되어야 합니다.

Centrifugo v2.8.4 (Go version: go1.16.3)

Centrifugo 구성

다음으로 Centrifugo 구성 파일을 생성해야 합니다. 다음 명령으로 생성할 수 있습니다.

centrifugo genconfig

이 명령은 현재 작업 디렉토리에 config.json 파일을 생성합니다. 다음 명령으로 확인할 수 있습니다.

cat config.json

다음 출력이 표시되어야 합니다.

{
  "v3_use_offset": true,
  "token_hmac_secret_key": "03599f21-9737-40bc-821e-afe34c1849ec",
  "admin_password": "51d88406-da91-4aab-979a-c2114b51a14c",
  "admin_secret": "fa12779d-ba9a-48b9-9cff-14bf96ee79b7",
  "api_key": "e667e485-1b46-4a5e-991e-a69729b57d07",
  "allowed_origins": []
}

참고: 위 출력에서 admin_password를 기록해 두십시오. 웹 인터페이스에 로그인하려면 이것이 필요합니다.

다음으로 다음 명령을 사용하여 Centrifugo용 디렉토리를 생성합니다.

mkdir /etc/centrifugo

다음으로 config.json 파일을 /etc/centrifugo 디렉터리에 복사합니다.

mv config.json /etc/centrifugo/config.json

완료되면 다음 단계로 진행할 수 있습니다.

Centrifugo용 Systemd 서비스 파일 만들기

다음으로 Centrifugo 서비스를 관리하기 위해 systemd 서비스 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/systemd/system/centrifugo.service

다음 줄을 추가합니다.

[Unit]
Description=Centrifugo Websocket Server
After=network.target syslog.target
 
[Service]
LimitNOFILE=30000
ExecStartPre=/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json
ExecStart=/usr/bin/centrifugo --config /etc/centrifugo/config.json --admin
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
TimeoutStopSec=5
KillMode=control-group
RestartSec=2
Restart=always
SyslogIdentifier=centrifugo

[Install]
WantedBy=multi-user.target
Alias=centrifugo.service

파일을 저장하고 닫은 다음 systemd 데몬을 다시 로드하여 변경 사항을 적용합니다.

systemctl daemon-reload

그런 다음 Centrifugo 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start centrifugo
systemctl enable centrifugo

다음 명령을 사용하여 Centrifugo 서비스의 상태를 확인할 수 있습니다.

systemctl status centrifugo

다음 출력이 표시되어야 합니다.

? centrifugo.service - Centrifugo Websocket Server
     Loaded: loaded (/etc/systemd/system/centrifugo.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-22 10:01:52 UTC; 4s ago
    Process: 3024 ExecStartPre=/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json (code=exited, status=0/SUCCESS)
   Main PID: 3040 (centrifugo)
      Tasks: 6 (limit: 2353)
     Memory: 7.8M
     CGroup: /system.slice/centrifugo.service
             ??3040 /usr/bin/centrifugo --config /etc/centrifugo/config.json --admin

May 22 10:01:51 ubunt4 systemd[1]: Starting Centrifugo Websocket Server...
May 22 10:01:52 ubunt4 systemd[1]: Started Centrifugo Websocket Server.
May 22 10:01:52 ubunt4 centrifugo[3040]: {"level":"info","version":"2.8.4","runtime":"go1.16.3","pid":3040,"engine":"Memory","gomaxprocs":>
May 22 10:01:52 ubunt4 centrifugo[3040]: {"level":"info","path":"/etc/centrifugo/config.json","time":"2021-05-22T10:01:52Z","message":"usi>
May 22 10:01:52 ubunt4 centrifugo[3040]: {"level":"info","time":"2021-05-22T10:01:52Z","message":"serving websocket, SockJS, API, admin en>

이 시점에서 Centrifugo 서비스가 시작되고 포트 8000에서 수신 대기합니다. 다음 명령으로 확인할 수 있습니다.

ss -tunelp | grep 8000

다음 출력이 표시되어야 합니다.

tcp   LISTEN 0      4096                                  *:8000              *:*       users:(("centrifugo",pid=3040,fd=3)) ino:26878 sk:c v6only:0 <->        

Centrifugo 웹 UI에 액세스

이제 웹 브라우저를 열고 URL http://your-server-ip:8000을 사용하여 Centrifugo 웹 인터페이스에 액세스합니다. Centrifugo 로그인 페이지로 리디렉션됩니다.

관리자 비밀번호를 입력하고 LOG IN 버튼을 클릭합니다. 다음 페이지에 Centrifugo 대시보드가 표시되어야 합니다.

결론

축하합니다! Ubuntu 20.04 서버에 Centrifugo 서버를 성공적으로 설치했습니다. 자세한 내용은 Centrifugo 설명서를 참조하십시오.