Cómo instalar el servidor de mensajería Centrifugo en Ubuntu 20.04

Servidor de mensajería Centrifugo

Centrifugo es un servidor de mensajería gratuito, de código abierto y en tiempo real. Es compatible con WebSocket y SockJS para realizar una conexión desde los clientes de la aplicación a través del navegador web. Es rápido y capaz de manejar millones de conexiones simultáneas. Puede integrar fácilmente su aplicación existente. Es independiente del lenguaje y su API se puede usar desde cualquier lenguaje de programación.

En esta guía, le mostraremos cómo instalar Centrifugo en el servidor Ubuntu 20.04.

requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Una contraseña de root está configurada en el servidor.

Empezando

Antes de comenzar, deberá actualizar los paquetes de su sistema a la última versión. Puede actualizarlos usando el siguiente comando:

apt-get update -y

Una vez que su servidor esté actualizado, puede continuar con el siguiente paso.

Instalar centrifugo

De forma predeterminada, el paquete Centrifugo no está incluido en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deberá descargar su binario desde el repositorio de Git.

Puede descargar la última versión de Centrifugo con el siguiente comando:

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

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

A continuación, mueva el binario de Centrifugo al directorio /usr/bin:

mv centrifugo /usr/bin

Ahora, verifique la versión de Centrifugo usando el siguiente comando:

centrifugo version

Debería ver el siguiente resultado:

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

Configurar centrífuga

A continuación, deberá generar el archivo de configuración de Centrifugo. Puedes generarlo con el siguiente comando:

centrifugo genconfig

Este comando generará un archivo config.json en su directorio de trabajo actual. Puedes comprobarlo con el siguiente comando:

cat config.json

Deberías obtener el siguiente resultado:

{
  "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: Anote la admin_password de la salida anterior. Lo necesitará para iniciar sesión en la interfaz web.

A continuación, cree un directorio para Centrifugo con el siguiente comando:

mkdir /etc/centrifugo

A continuación, copie el archivo config.json en el directorio /etc/centrifugo:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear un archivo de servicio de Systemd para Centrifugo

A continuación, deberá crear un archivo de servicio systemd para administrar el servicio Centrifugo. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/centrifugo.service

Agregue las siguientes líneas:

[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

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd para aplicar los cambios: Publicidad

systemctl daemon-reload

A continuación, inicie el servicio Centrifugo y habilítelo para que se inicie al reiniciar el sistema:

systemctl start centrifugo
systemctl enable centrifugo

Puede verificar el estado del servicio Centrifugo con el siguiente comando:

systemctl status centrifugo

Debería ver el siguiente resultado:

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

En este punto, el servicio Centrifugo se inicia y escucha en el puerto 8000. Puede verificarlo con el siguiente comando:

ss -tunelp | grep 8000

Deberías obtener el siguiente resultado:

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

Acceder a la interfaz de usuario web de Centrifugo

Ahora, abra su navegador web y acceda a la interfaz web de Centrifugo usando la URL http://su-servidor-ip:8000. Será redirigido a la página de inicio de sesión de Centrifugo:

Servidor de mensajería Centrifugo

Proporcione su contraseña de administrador y haga clic en el INICIAR SESIÓN botón. Debería ver el tablero de Centrifugo en la siguiente página:

lista de nodos

Conclusión

¡Felicidades! Ha instalado con éxito el servidor Centrifugo en el servidor Ubuntu 20.04. Para más información, debe leer el Centrifugo documentación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *