nginx-rtmp-module 的缺陷分析(四)

Nginx 一般情况下都是以多进程方式(一个 master 进程和多个 worker 进程)运行的,但是 nginx-rtmp-module 模块对多进程方式的支持很不成熟。

前面的文章提到过以多进程方式运行 Nginx 时,由于 nginx-rtmp-module 本身不支持 Vhost 功能,再加上它使用 Unix domain socket(没有端口信息)转发媒体流到其他的 worker 进程,导致其他的 worker 进程无法知道转发的媒体流需要匹配的是哪个 server 配置。

Nginx 从 1.9.11 版本开始,在类 Unix 系统上支持将第三方模块编译成动态模块,可以在运行时加载它们。这又引出多进程方式下运行 nginx-rtmp-module 的另一个问题。

这个问题产生的背景是:用户 A 开发了自己的第三方模块(不开源),用户 B 在 nginx-rtmp-module 的基础上开发了一些新的功能(也不开源),用户 A 想在最新稳定版本的 Nginx(1.18.0)中使用用户 B 开发的新功能,用户 B 告诉用户 A,你把你的第三方模块编译成动态模块,然后你告诉我除了你编译的动态模块之外的编译参数,我把我的第三方模块也编译成动态模块,这样我(用户 B)就可以在不用获得你(用户 A)自己开发的第三方模块前提下也能编译出与你(用户 A)的 Nginx 二进制兼容的第三方模块了。

用户 A 照做了,用户 B 将编译好的基于 nginx-rtmp-modul

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值