溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么分析nginx-rtmp-module的缺陷

發(fā)布時(shí)間:2021-10-19 18:18:18 來源:億速云 閱讀:162 作者:柒染 欄目:大數(shù)據(jù)

怎么分析nginx-rtmp-module的缺陷,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

VHOST(虛擬主機(jī))就是一址多域的意思,主流的Web服務(wù)器都有這個(gè)功能,它解決了運(yùn)行Web的主機(jī)在同一個(gè)IP地址情況下可以為不同域名的請(qǐng)求提供服務(wù)的問題。假設(shè)有兩個(gè)域名A和B,在DNS上A和B都指向同一個(gè)A記錄(IPv4)或者AAAA記錄(IPv6),Web服務(wù)器通過不同的域名信息解析到不同的配置,從而為A和B提供不同的服務(wù)。Nginx根據(jù)請(qǐng)求的信息(端口,IP地址和域名)匹配到對(duì)應(yīng)的配置的大概過程如下:

怎么分析nginx-rtmp-module的缺陷

nginx-rtmp-module有個(gè)嚴(yán)重的問題:如果在rtmp配置塊里沒有l(wèi)isten選項(xiàng),那么它根本就不能運(yùn)行,因?yàn)闆]有默認(rèn)監(jiān)聽任何端口。而且就算配置了listen選項(xiàng),它也無法根據(jù)域名找到正確的配置。例如有如下配置:

rtmp {

    server {

        listen 1935;

        ...

    }

    server {

        listen 1935;

        ...

    }

}

我如果想推流到第二個(gè)server配置塊里的某個(gè)application,nginx-rtmp-module只能將流推到第一個(gè)server配置塊里的某個(gè)application,因?yàn)樗鼪]有像Nginx本身提供的server_name配置項(xiàng)的功能。究其原因,是因?yàn)閚ginx-rtmp-module沒有實(shí)現(xiàn)上圖中的“有無域名匹配”和“域名是否匹配”的功能。這個(gè)問題還導(dǎo)致stat.xsl也沒有考慮適配VHOST的功能,所以就算能推到第二個(gè)server配置塊里的某個(gè)application,如果這個(gè)application的名稱與第一個(gè)server配置塊里的某個(gè)application相同,在查詢統(tǒng)計(jì)信息的時(shí)候,點(diǎn)第二個(gè)application的詳情,會(huì)打開第一個(gè)application的詳情。nginx-http-flv-module部分解決了這個(gè)問題。單進(jìn)程模式下沒有任何問題,多進(jìn)程模式下有些情況下也沒有問題,詳情見nginx-http-flv-module-note-6的描述。這是因?yàn)橐粋€(gè)進(jìn)程接收到推流請(qǐng)求后,會(huì)將流auto push到別的進(jìn)程,這是通過unix domain socket實(shí)現(xiàn)的,但是unix domain socket不像AF_INET/AF_INET6協(xié)議族的socket,它是沒有端口號(hào)的,所以目前不知道如何從接收推流的進(jìn)程傳遞端口號(hào)給別的進(jìn)程,從而匹配正確的配置。

歡迎關(guān)注我在nginx-rtmp-module基礎(chǔ)上開發(fā)的項(xiàng)目:nginx-http-flv-module。

看完上述內(nèi)容,你們掌握怎么分析nginx-rtmp-module的缺陷的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI