×

🌐 Distribution

Nginx · Redis · SSL · Lua

Arquitectura Principal → Transmisión → CDN

Descripción general

El servidor principal actúa solo como orquestador — autenticación, generación de tokens, enrutamiento de CDN. Nunca toca los datos de transmisión. Las transmisiones fluyen directamente desde stream server a través de proxies CDN a los clientes. Cada red de cliente tiene una CDN local para baja latencia. Una CDN-Z pública sirve como respaldo.

Autenticación, tokens, orquestación. Sin datos de transmisión.

Validación de token a través de Redis, proxy a stream server.

Servidores de transmisión de origen (HLS/MPEG-TS).

Reproductor IPTV (VLC, STB, aplicación móvil).

Flujo de solicitud

El cliente se autentic (API B2C / enlace de reproducción)

Main crea token en Redis (URL de fuente, TTL 24h)

Principal redirige al cliente a la mejor CDN (302)

El cliente sigue la redirección a la CDN

CDN valida el token a través de Redis de Principal (Red X)

CDN hace proxy de la transmisión desde stream server al cliente

Topología de red

respaldo

internet público

Verificación de salud y conmutación por error

CdnRouter verifica la salud de la CDN cada 30s a través del punto final /health. Si la mejor CDN para la subred del cliente está caida, se reduce a la siguiente CDN coincidente (ordenada por longitud de prefijo CIDR, más específica primero).

Sin CDN sana → /cdn/ local en Principal (red de seguridad)

Detalles del token

Formato

Claves de Redis

URL de redirección

Formatos admitidos y normalización de URL

CdnToken detecta y maneja automáticamente diferentes formatos de URL de origen. Para MPEG-TS o rutas de transmisión desnudas, consulta al servidor la disponibilidad de HLS a través de la solicitud HEAD.

Lista HLS — se usa directamente, lista maestra filtrada a una sola variante de video + todas las pistas de audio

MPEG-TS crudo — se convierte automáticamente a HLS si el servidor lo soporta (stream server siempre lo hace), de lo contrario se hace proxy crudo con desactivación de búfer

Archivo (mp4, m4s, ts, mkv, etc.) — proxy directo tal como está, sin conversión

DASH (mpd) — proxy directo tal como está

Filtro de lista maestra Nginx

Para transmisiones HLS, el filtro de cuerpo de nginx reescribe la lista maestra (index.m3u8) para mantener solo la primera variante de video mientras preserva todas las pistas de audio/subtítulos. Esto evita que los clientes descarguen múltiples calidades de video simultáneamente.

Antes (desde stream server)

Después (entregado al cliente)

Componentes

Genera tokens hex de 32 caracteres, detecta automáticamente el formato (HLS/MPEG-TS/archivo), normaliza la URL, almacena en Redis con SETEX (TTL de 24h).

Encuentra la CDN sana mejor para la IP del cliente (coincidencia CIDR + verificación de salud). Cadena de respaldo.

Instala automáticamente nginx + lua-resty-redis + Redis en servidores CDN. Inyecta la ubicación /cdn/ en nginx principal.

Modelo de base de datos: dominio, ip_scope (CIDR), redis_host (IP principal en Red X), estado de salud.