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:
Geef je admin wachtwoord op en klik op de LOG IN knop. Je zou het Centrifugo dashboard op de volgende pagina moeten zien:
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.