nchan: Servidor pub/sub escalable y flexible para la web moderna
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- RedHat Enterprise Linux 7, 8, 9 y 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-nchan
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-nchan
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_nchan_module.so;
Este documento describe nginx-module-nchan v1.3.8 lanzado el 15 de febrero de 2026.

Nchan es un servidor pub/sub escalable y flexible para la web moderna, construido como un módulo para el servidor web Nginx. Puede configurarse como un servidor independiente, o como un intermediario entre tu aplicación y cientos, miles o millones de suscriptores en vivo. Puede almacenar mensajes en memoria, en disco, o a través de Redis. Todas las conexiones se manejan de forma asíncrona y se distribuyen entre cualquier número de procesos de trabajo. También puede escalar a muchos servidores Nginx con Redis.
Los mensajes se publican en canales mediante solicitudes HTTP POST o Websocket, y se suscriben a través de Websocket, long-polling, EventSource (SSE), sondeos de intervalo a la antigua, y más.
En un navegador web, puedes usar Websocket o EventSource de forma nativa, o la biblioteca envoltorio NchanSubscriber.js.
Características
- API RESTful, nativa de HTTP
- Soporta Websocket, EventSource (Eventos enviados por el servidor), Long-Polling y otros suscriptores basados en HTTP
- Buffers de mensajes configurables por canal con garantías de entrega de mensajes sin repetición y sin pérdida
- Suscríbete a cientos de canales a través de una única conexión de suscriptor
- Callbacks y hooks de solicitudes HTTP para una fácil integración
- Introspección con eventos de canal y URL para monitorear estadísticas de rendimiento
- Contabilidad y límites de uso de grupos de canales
- Almacenamiento local de mensajes en memoria compartida no bloqueante y almacenamiento persistente opcional con Redis
- Escalable horizontalmente usando Redis
- Conmutación por error automática y alta disponibilidad con Redis Cluster
Comenzando
Agrega dos ubicaciones a tu configuración de nginx:
http {
server {
location = /sub {
nchan_subscriber;
nchan_channel_id $arg_id;
}
location = /pub {
nchan_publisher;
nchan_channel_id $arg_id;
}
}
}
Ahora puedes publicar mensajes en un canal enviando datos a /pub?id=channel_id, y suscribirte apuntando Websocket o EventSource a sub/?id=channel_id.
Puntos finales de suscriptor
Nchan soporta varios tipos de suscriptores:
Websocket
location /sub {
nchan_subscriber websocket;
nchan_channel_id foobar;
}
EventSource
location /sub {
nchan_subscriber eventsource;
nchan_channel_id foobar;
}
Long-Polling
location /sub {
nchan_subscriber longpoll;
nchan_channel_id foobar;
}
Puntos finales de publicador
location /pub {
nchan_publisher;
nchan_channel_id foobar;
}
Publica un mensaje:
curl -X POST -d "hello world" http://localhost/pub
Almacenamiento Redis
Para escalado horizontal y almacenamiento persistente:
upstream redis_cluster {
nchan_redis_server redis://127.0.0.1:6379;
}
location /sub {
nchan_subscriber;
nchan_channel_id foobar;
nchan_redis_pass redis_cluster;
}
location /pub {
nchan_publisher;
nchan_channel_id foobar;
nchan_redis_pass redis_cluster;
}
Documentación Completa
Para directivas de configuración completas y documentación detallada, visita la documentación oficial de Nchan.
Secciones clave en la documentación completa: - Multiplexión de canales - Hooks y callbacks para autorización - Configuración de Redis Cluster para alta disponibilidad - Eventos de canal e introspección - Mejores prácticas de seguridad
GitHub
Puedes encontrar consejos adicionales de configuración y documentación para este módulo en el repositorio de GitHub para nginx-module-nchan.