Centrifugo Messaging Server installeren op Ubuntu 20.04

Centrifugo is een gratis, open-source, en real-time berichtenserver. Het ondersteunt WebSocket en SockJS om een verbinding te maken van de toepassingscliënten via de web browser. Het is snel en in staat miljoenen gelijktijdige verbindingen aan te kunnen. Het kan je bestaande toepassing gemakkelijk integreren. Het is taal-agnostisch en zijn API kan vanuit elke programmeertaal gebruikt worden.

In deze gids laten we je zien hoe je Centrifugo op Ubuntu 20.04 server kunt installeren.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een root wachtwoord is op de server ingesteld.

Aan de slag

Voor je begint, moet je je systeempakketten bijwerken naar de nieuwste versie. Je kunt ze bijwerken met het volgende commando:

apt-get update -y

Als je server bijgewerkt is, kun je verder gaan met de volgende stap.

Installeer Centrifugo

Het Centrifugo pakket is standaard niet opgenomen in de Ubuntu 20.04 standaard repository. Je zult dus de binary ervan moeten downloaden uit de Git repository.

Je kunt de nieuwste versie van Centrifugo downloaden met het volgende commando:

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

Als de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

Verplaats vervolgens de Centrifugo binary naar de map /usr/bin:

mv centrifugo /usr/bin

Controleer nu de Centrifugo versie met het volgende commando:

centrifugo version

Je zou de volgende uitvoer moeten zien:

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

Configureer Centrifugo

Vervolgens moet je het Centrifugo configuratiebestand genereren. Je kunt het genereren met het volgende commando:

centrifugo genconfig

Dit commando genereert een config.json bestand in je huidige werkdirectory. Je kunt het controleren met het volgende commando:

cat config.json

Je zou de volgende uitvoer moeten krijgen:

{
  "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": []
}

Opmerking: Noteer het admin_password uit de bovenstaande uitvoer. Je hebt dit nodig om in te loggen op de webinterface.

Maak vervolgens een directory voor Centrifugo met het volgende commando:

mkdir /etc/centrifugo

Kopieer vervolgens het config.json bestand naar de /etc/centrifugo directory:

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

Als je klaar bent, kun je verder gaan met de volgende stap.

Maak een Systemd Service bestand voor Centrifugo

Vervolgens moet je een systemd dienstbestand maken om de Centrifugo dienst te beheren. Je kunt het aanmaken met het volgende commando:

nano /etc/systemd/system/centrifugo.service

Voeg de volgende regels toe:

[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

Bewaar en sluit het bestand en herlaad dan de systemd daemon om de veranderingen toe te passen:

systemctl daemon-reload

Start vervolgens de Centrifugo service en zet hem aan om te starten bij het herstarten van het systeem:

systemctl start centrifugo
systemctl enable centrifugo

Je kunt de status van de Centrifugo service controleren met het volgende commando:

systemctl status centrifugo

Je zou de volgende uitvoer moeten zien:

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

Op dit moment is de Centrifugo service gestart en luistert op poort 8000. Je kunt het controleren met het volgende commando:

ss -tunelp | grep 8000

Je zou de volgende uitvoer moeten krijgen:

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

Toegang tot Centrifugo Web UI

Open nu je webbrowser en ga naar de Centrifugo webinterface met de URL http://your-server-ip:8000. Je wordt doorgestuurd naar de Centrifugo login pagina:

Centrifugaal Berichten Server

Geef je admin wachtwoord op en klik op de LOG IN knop. Je zou het Centrifugo dashboard op de volgende pagina moeten zien:

Knooppuntenlijst

Conclusie

Gefeliciteerd! je hebt met succes de Centrifugo server op Ubuntu 20.04 server geïnstalleerd. Voor meer informatie kun je de Centrifugo documentatie lezen.