nchan: Servidor pub/sub escalável e flexível para a web moderna
Instalação
Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:
- RedHat Enterprise Linux 7, 8, 9 e 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 e 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
Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:
load_module modules/ngx_nchan_module.so;
Este documento descreve o nginx-module-nchan v1.3.8 lançado em 15 de fevereiro de 2026.

Nchan é um servidor pub/sub escalável e flexível para a web moderna, construído como um módulo para o Nginx. Ele pode ser configurado como um servidor autônomo ou como um intermediário entre sua aplicação e centenas, milhares ou milhões de assinantes ativos. Ele pode armazenar mensagens em memória, em disco ou via Redis. Todas as conexões são tratadas de forma assíncrona e distribuídas entre qualquer número de processos de trabalho. Ele também pode escalar para muitos servidores Nginx com Redis.
As mensagens são publicadas em canais com requisições HTTP POST ou Websocket, e assinadas através de Websocket, long-polling, EventSource (SSE), polling por intervalo à moda antiga e mais.
Em um navegador web, você pode usar Websocket ou EventSource nativamente, ou a biblioteca wrapper NchanSubscriber.js.
Recursos
- API RESTful, nativa em HTTP
- Suporta Websocket, EventSource (Eventos Enviados pelo Servidor), Long-Polling e outros assinantes baseados em HTTP
- Buffers de mensagens configuráveis por canal com garantias de entrega de mensagens sem repetição e sem perda
- Assine centenas de canais através de uma única conexão de assinante
- Callbacks e hooks de requisições HTTP para fácil integração
- Introspecção com eventos de canal e URL para monitoramento de estatísticas de desempenho
- Contabilidade e limites de uso de grupos de canais
- Armazenamento local de mensagens em memória compartilhada não bloqueante e armazenamento persistente opcional com Redis
- Escalável horizontalmente usando Redis
- Auto-failover e alta disponibilidade com Redis Cluster
Começando
Adicione duas localizações à sua configuração do nginx:
http {
server {
location = /sub {
nchan_subscriber;
nchan_channel_id $arg_id;
}
location = /pub {
nchan_publisher;
nchan_channel_id $arg_id;
}
}
}
Agora você pode publicar mensagens em um canal enviando dados para /pub?id=channel_id, e assinar apontando Websocket ou EventSource para sub/?id=channel_id.
Endpoints de Assinante
Nchan suporta vários tipos de assinantes:
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;
}
Endpoints de Publicador
location /pub {
nchan_publisher;
nchan_channel_id foobar;
}
Publique uma mensagem:
curl -X POST -d "hello world" http://localhost/pub
Armazenamento Redis
Para escalabilidade horizontal e armazenamento 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;
}
Documentação Completa
Para diretrizes de configuração completas e documentação detalhada, visite a documentação oficial do Nchan.
Seções principais na documentação completa: - Multiplexação de canais - Hooks e callbacks para autorização - Configuração do Redis Cluster para alta disponibilidade - Eventos de canal e introspecção - Melhores práticas de segurança
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-nchan.