Cómo instalar el servidor de mensajería Centrifugo en Ubuntu 20.04
Centrifugo es un servidor de mensajería gratuito, de código abierto y en tiempo real. Soporta 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 tu aplicación existente. Es agnóstico al lenguaje y su API puede utilizarse desde cualquier lenguaje de programación.
En esta guía, te mostraremos cómo instalar Centrifugo en el servidor Ubuntu 20.04.
Requisitos previos
- Un servidor con Ubuntu 20.04.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, tendrás que actualizar los paquetes del sistema a la última versión. Puedes actualizarlos con el siguiente comando:
apt-get update -y
Una vez que tu servidor esté actualizado, puedes pasar al siguiente paso.
Instalar Centrifugo
Por defecto, el paquete Centrifugo no está incluido en el repositorio por defecto de Ubuntu 20.04. Así que tendrás que descargar su binario desde el repositorio Git.
Puedes 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 completada la descarga, extrae el archivo descargado con el siguiente comando:
tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz
A continuación, mueve el binario de Centrifugo al directorio /usr/bin:
mv centrifugo /usr/bin
Ahora, verifica la versión de Centrifugo con el siguiente comando:
centrifugo version
Deberías ver la siguiente salida:
Centrifugo v2.8.4 (Go version: go1.16.3)
Configurar Centrifugo
A continuación, tendrás que generar el archivo de configuración de Centrifugo. Puedes generarlo con el siguiente comando:
centrifugo genconfig
Este comando generará un archivo config.json en tu directorio de trabajo actual. Puedes comprobarlo con el siguiente comando:
cat config.json
Deberías obtener la siguiente salida:
{ "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: Anota la contraseña admin de la salida anterior. La necesitarás para acceder a la interfaz web.
A continuación, crea un directorio para Centrifugo con el siguiente comando:
mkdir /etc/centrifugo
A continuación, copia el archivo config.json en el directorio /etc/centrifugo:
mv config.json /etc/centrifugo/config.json
Una vez que hayas terminado, puedes pasar al siguiente paso.
Crear un archivo de servicio Systemd para Centrifugo
A continuación, tendrás que crear un archivo de servicio systemd para gestionar el servicio Centrifugo. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/centrifugo.service
Añade 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
Guarda y cierra el archivo y vuelve a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicia el servicio Centrifugo y permite que se inicie al reiniciar el sistema:
systemctl start centrifugo
systemctl enable centrifugo
Puedes comprobar el estado del servicio Centrifugo con el siguiente comando:
systemctl status centrifugo
Deberías ver la siguiente salida:
? 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 momento, el servicio Centrifugo está iniciado y a la escucha en el puerto 8000. Puedes comprobarlo con el siguiente comando:
ss -tunelp | grep 8000
Deberías obtener la siguiente salida:
tcp LISTEN 0 4096 *:8000 *:* users:(("centrifugo",pid=3040,fd=3)) ino:26878 sk:c v6only:0 <->
Accede a la interfaz web de Centrifugo
Ahora, abre tu navegador web y accede a la interfaz web de Centrifugo utilizando la URL http://your-server-ip:8000. Serás redirigido a la página de inicio de sesión de Centrifugo:
Proporciona tu contraseña de administrador y haz clic en el botón INICIAR S ESIÓN. Deberías ver el panel de control de Centrifugo en la siguiente página:
Conclusión
Enhorabuena! has instalado con éxito el servidor Centrifugo en el servidor Ubuntu 20.04. Para más información, deberías leer la documentación de Centrifugo.