Ricerca nel sito web

Come installare Centrifugo Messaging Server su Ubuntu 20.04


Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa Centrifugo
  4. Configura Centrifugo
  5. Crea un file di servizio Systemd per Centrifugo
  6. Accedi all'interfaccia utente Web di Centrifugo
  7. Conclusione

Centrifugo è un server di messaggistica gratuito, open source e in tempo reale. Supporta WebSocket e SockJS per stabilire una connessione dai client dell'applicazione tramite il browser web. È veloce e in grado di gestire milioni di connessioni simultanee. Può integrare facilmente la tua applicazione esistente. È indipendente dal linguaggio e la sua API può essere utilizzata da qualsiasi linguaggio di programmazione.

In questa guida, ti mostreremo come installare Centrifugo sul server Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Sul server è configurata una password di root.

Iniziare

Prima di iniziare, dovrai aggiornare i tuoi pacchetti di sistema all'ultima versione. Puoi aggiornarli usando il seguente comando:

apt-get update -y

Una volta aggiornato il server, puoi procedere al passaggio successivo.

Installa Centrifugo

Per impostazione predefinita, il pacchetto Centrifugo non è incluso nel repository predefinito di Ubuntu 20.04. Quindi dovrai scaricare il suo binario dal repository Git.

Puoi scaricare l'ultima versione di Centrifugo con il seguente comando:

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

Una volta completato il download, estrai il file scaricato con il seguente comando:

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

Successivamente, sposta il file binario di Centrifugo nella directory /usr/bin:

mv centrifugo /usr/bin

Ora, verifica la versione di Centrifugo usando il seguente comando:

centrifugo version

Dovresti vedere il seguente output:

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

Configura Centrifugo

Successivamente, sarà necessario generare il file di configurazione di Centrifugo. Puoi generarlo con il seguente comando:

centrifugo genconfig

Questo comando genererà un file config.json nella directory di lavoro corrente. Puoi verificarlo con il seguente comando:

cat config.json

Dovresti ottenere il seguente output:

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

Nota: annotare admin_password dall'output precedente. Ne avrai bisogno per accedere all'interfaccia web.

Successivamente, crea una directory per Centrifugo con il seguente comando:

mkdir /etc/centrifugo

Successivamente, copia il file config.json nella directory /etc/centrifugo:

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

Una volta terminato, puoi procedere al passaggio successivo.

Crea un file di servizio Systemd per Centrifugo

Successivamente, dovrai creare un file di servizio systemd per gestire il servizio Centrifugo. Puoi crearlo con il seguente comando:

nano /etc/systemd/system/centrifugo.service

Aggiungi le seguenti righe:

[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

Salva e chiudi il file, quindi ricarica il demone systemd per applicare le modifiche:

systemctl daemon-reload

Successivamente, avvia il servizio Centrifugo e abilitalo per l'avvio al riavvio del sistema:

systemctl start centrifugo
systemctl enable centrifugo

Puoi controllare lo stato del servizio Centrifugo con il seguente comando:

systemctl status centrifugo

Dovresti vedere il seguente output:

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

A questo punto il servizio Centrifugo è avviato e in ascolto sulla porta 8000. Puoi verificarlo con il seguente comando:

ss -tunelp | grep 8000

Dovresti ottenere il seguente output:

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

Accedere all'interfaccia utente Web di Centrifugo

Ora, apri il tuo browser web e accedi all'interfaccia web di Centrifugo utilizzando l'URL http://your-server-ip:8000. Verrai reindirizzato alla pagina di login di Centrifugo:

Fornisci la tua password di amministratore e fai clic sul pulsante ACCEDI. Dovresti vedere la dashboard di Centrifugo nella pagina seguente:

Conclusione

Congratulazioni! hai installato con successo il server Centrifugo sul server Ubuntu 20.04. Per ulteriori informazioni, consultare la documentazione di Centrifugo.