martes, 4 de noviembre de 2025

Nginx proxy inverso cache para protocolo HTTP Live Streaming (HLS)

Configuracion:

1° Creando un directorio para el caché de nginx:

proxy_cache_path "/opt/ramcache" use_temp_path=off keys_zone=hls:1m inactive=30s max_size=10g;


---------------------------------------------------------------------

Archivo de configuracion " hls_proxy.conf ":

/etc/nginx/conf.d/hls_proxy.conf:


-----------------------------------------------hls_proxy.conf

server {

    listen 4000;

    server_name _;

    location ~* \.(m3u8)$ {

        proxy_cache off;

        expires -1;

        proxy_pass http://192.168.88.100:8000;

        include /etc/nginx/hls_proxy_params.conf;

    }



    location ~* \.(ts)$ {

        proxy_pass http://192.168.88.100:8000;

        proxy_cache hls;

        proxy_cache_key $request_uri;

        proxy_cache_valid 200 10s;

        proxy_cache_lock on;

        proxy_cache_lock_timeout 5s;

        proxy_cache_lock_age 5s;

        include /etc/nginx/hls_proxy_params.conf;

    }


}
----------------------------------------------------------------
3° opciones de proxy comunes en:
 /etc/nginx/hls_proxy_params.conf

----------------------------------------------hls_proxy_params.conf

proxy_redirect              off;

proxy_connect_timeout       5s;
proxy_send_timeout          180s;
proxy_read_timeout          180s;

# Buffer for headers
proxy_buffer_size           16k;
proxy_buffers               512  32k;
proxy_temp_file_write_size  512k;
proxy_max_temp_file_size    256m;

# For keepalive
proxy_http_version          1.1;

proxy_set_header            Host $host;
proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header            X-Forwarded-For $remote_addr;
proxy_set_header            X-Forwarded-Proto $scheme;

proxy_next_upstream         error timeout http_502 http_504;
proxy_next_upstream_tries   2;



-------------------------------------------------------------

fuentes:
https://www.hostingtg.com/blog/nginx-servidor-web-alto-rendimiento/
https://help.cesbo.com/misc/tools-and-utilities/network/hls-caching-proxy-with-nginx

---------------------------------------------------------------------------

Uso practico:
requisitos previos:
1° instalcion Nginx web proxy
2° config segun los pasos anteriores mostrados
3° prueba de funcionamiento

lunes, 3 de noviembre de 2025

HTTP Live Streaming (HLS), Transport Stream (TS) Adminstracion de trafico con Mikrotik

Identificar trafico streaming con L7 (TS para protocol 80):

/ip firewall layer7-protocol

add name=M3U8_TS2 regexp="(\\.(ts|m3u8)\?.+\$)*\$"


Mangle y L7

/ip firewall mangle

add action=mark-connection chain=prerouting layer7-protocol=M3U8_TS2 \

    new-connection-mark=Video_Stream

add action=mark-packet chain=postrouting connection-mark=Video_Stream \

    new-packet-mark=iptv_pkt passthrough=no


En Queue List y Type

/queue tree

add name=A_iptv packet-mark=iptv_pkt parent="Streaming Videos" priority=3 \

    queue=down_iptv


/queue type

add kind=pcq name=down_iptv pcq-classifier=dst-address pcq-rate=10M