SRS:如何用NGINX搭建HLS分发集群

本文介绍了如何利用NGINX搭建HLS分发集群,解决高并发直播观看问题。通过配置NGINX的缓存策略,实现边缘集群,减轻SRS源站压力。文中还提供了基准测试方法、示例配置以及与SRS Edge Server的配合使用,确保低延迟和高扩展性。此外,探讨了NGINX作为HLS源站的可能性和调试缓存效果的方法。
摘要由CSDN通过智能技术生成

SRS的集群,终于补齐了最后一块拼图,就是基于NGINX的HTTP文件分发集群,比如HLS分发集群。

并且,HLS分发集群,可以和HTTP-FLV一起工作。高并发,高扩展性的NGINX,YYDS。

边缘集群(Edge Cluster)就是为了解决很多人观看的问题,可以支持非常多的人观看直播流。注意:

•SRS Edge只支持直播流协议,比如RTMP或HTTP-FLV等,参考RTMP Edge Cluster[1]。•SRS Edge不支持HLS或DASH等切片的直播流,本质上它们不是流,就是文件分发。•SRS Edge不支持WebRTC的流分发,这不是Edge设计的目标,WebRTC有自己的集群方式。

本文描述的就是HLS或DASH等切片的边缘集群,基于NGINX实现,所以也叫NGINX Edge Cluster。

1.NGINX Edge Cluster


NGINX边缘集群,本质上就是带有缓存的反向代理,也就是NGNIX Proxy with Cache。

只需要配置NGINX的缓存策略就可以,不需要额外插件,NGINX本身就支持:

http {
    # For Proxy Cache.
    proxy_cache_path  /tmp/nginx-cache levels=1:2 keys_zone=srs_cache:8m max_size=1000m inactive=600m;
    proxy_temp_path /tmp/nginx-cache/tmp; 
​
    server {
        listen       8081;
        # For Proxy Cache.
        proxy_cache_valid  404      10s;
        proxy_cache_lock on;
        proxy_cache_lock_age 300s;
        proxy_cache_lock_timeout 300s;
        proxy_cache_min_uses 1;
​
        location ~ /.+/.*\.(m3u8)$ {
            proxy_pass http://127.0.0.1:8080$request_uri;
            # For Proxy Cache.
            proxy_cache srs_cache;
            proxy_cache_key $scheme$proxy_host$uri$args;
            proxy_cache_valid  200 302  10s;
        }
        location ~ /.+/.*\.(ts)$ {
            proxy_pass http://127.0.0.1:8080$request_uri;
            # For Proxy Cache.
            proxy_cache srs_cache;
            proxy_cache_key $scheme$proxy_host$uri;
            proxy_cache_valid  200 302  60m;
        }
    }
}
Note: 可以配置缓存的目录proxy_cache_path和proxy_temp_path,改成能访问的目录就可以。
Note: 一般不要修改location配置,除非你知道代表什么含义,要改也先跑起来了再改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值