Wie installiere ich Centrifugo Messaging Server auf Ubuntu 20.04

Centrifugo ist ein freier, quelloffener Echtzeit Messaging Server. Er unterstützt WebSocket und SockJS, um eine Verbindung von den Anwendungsclients über den Webbrowser herzustellen und ist schnell und in der Lage, Millionen von gleichzeitigen Verbindungen zu verarbeiten. Er kann leicht in deine bestehende Anwendung integriert werden. Centrifugo ist sprachunabhängig und seine API kann von jeder Programmiersprache aus genutzt werden.

In dieser Anleitung werden wir dir zeigen, wie du Centrifugo auf einem Ubuntu 20.04 Server installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Bevor du beginnst, musst du deine Systempakete auf die neueste Version aktualisieren. Du kannst sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald dein Server aktualisiert ist, kannst du mit dem nächsten Schritt fortfahren.

Centrifugo installieren

Standardmäßig ist das Centrifugo-Paket nicht im Standard-Repository von Ubuntu 20.04 enthalten. Daher musst du das Binary aus dem Git Repository herunterladen.

Du kannst die neueste Version von Centrifugo mit dem folgenden Befehl herunterladen:

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

Sobald der Download abgeschlossen ist, extrahiere die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

Als nächstes verschiebst du das Centrifugo Binary in das Verzeichnis /usr/bin:

mv centrifugo /usr/bin

Überprüfe nun die Centrifugo-Version mit folgendem Befehl:

centrifugo version

Du solltest die folgende Ausgabe sehen:

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

Configure Centrifugo

Als nächstes musst du die Centrifugo-Konfigurationsdatei erzeugen. Du kannst sie mit dem folgenden Befehl erzeugen:

centrifugo genconfig

Dieser Befehl erzeugt eine config.json Datei in deinem aktuellen Arbeitsverzeichnis. Du kannst sie mit dem folgenden Befehl überprüfen:

cat config.json

Du solltest die folgende Ausgabe erhalten:

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

Hinweis: Notiere dir das admin_password aus der obigen Ausgabe. Dieses benötigst du, um dich in das Webinterface einzuloggen.

Als nächstes erstellst du ein Verzeichnis für Centrifugo mit dem folgenden Befehl:

mkdir /etc/centrifugo

Als nächstes kopierst du die Datei config.json in das Verzeichnis /etc/centrifugo:

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

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Erstelle eine Systemd Service Datei für Centrifugo

Als nächstes musst du eine systemd Servicedatei erstellen, um den Centrifugo Dienst zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/centrifugo.service

Füge die folgenden Zeilen ein:

[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

Speichere und schließe die Datei und lade dann den systemd Daemon neu, um die Änderungen zu übernehmen:

systemctl daemon-reload

Als nächstes startest du den Centrifugo-Dienst und aktivierst ihn so, dass er beim Neustart des Systems startet:

systemctl start centrifugo
systemctl enable centrifugo

Du kannst den Status des Centrifugo-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status centrifugo

Du solltest die folgende Ausgabe sehen:

? 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>

Zu diesem Zeitpunkt ist der Centrifugo-Dienst gestartet und lauscht auf Port 8000. Du kannst es mit dem folgenden Befehl überprüfen:

ss -tunelp | grep 8000

Du solltest die folgende Ausgabe erhalten:

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

Access Centrifugo Web UI

Öffne nun deinen Webbrowser und rufe das Centrifugo Webinterface über die URL http://your-server-ip:8000 auf. Du wirst auf die Centrifugo Login Seite weitergeleitet:

Zentrifugal Messaging Server

Gib dein Admin-Passwort ein und klicke auf die Schaltfläche LOG IN. Auf der folgenden Seite solltest du das Centrifugo Dashboard sehen:

Knotenpunkt Liste

Fazit

Herzlichen Glückwunsch! Du hast den Centrifugo Server erfolgreich auf einem Ubuntu 20.04 Server installiert. Für weitere Informationen solltest du die Centrifugo Dokumentation lesen.

Das könnte dich auch interessieren …