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
- Un servidor con Ubuntu 20.04.
- Se configura una contraseña raíz en el servidor.
Cómo empezar
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ífugo
A continuación, deberá generar el archivo de configuración de Centrifugo. Puede 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 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:
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://your-server-ip:8000 . Será redirigido a la página de inicio de sesión de Centrifugo:
Proporcione su contraseña de administrador y haga clic en INICIAR SESIÓN botón. Debería ver el panel de control de Centrifugo en la siguiente página:
Conclusión
¡Felicidades! Ha instalado con éxito el servidor Centrifugo en el servidor Ubuntu 20.04. Para obtener más información, debe leer la documentación de Centrifugo.