使用nginx做爲http-flv服務如何解決跨域問題

什麼是跨域

跨域是指瀏覽器的同源策略限制,這個策略會阻止一個域的javascript腳本和另外一個域的內容進行交互。如果一個請求url的協議、域名、端口三者之間任意一個與當前頁面的url不同即爲跨域。

如下圖所示即爲跨域時的報錯:

使用nginx搭建http-flv服務

主要使用了nginx和nginx-http-flv-module模塊,具體過程可參考:https://blog.csdn.net/rain_meter/article/details/88127209

配置好之後的主要配置如下圖所示:

此時我們可以正常的推流,並通過ffplay等播放器播放。

但是如果播放器flv.js所在的http服務不是我們所配置的nginx,那麼就會出現跨域的問題。

解決跨域

通過修改http-flv的nginx配置,即可解決跨域。

在nginx.conf的“location /live”中增加下面三行:

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET';

效果如下圖所示:

然後reload或者重啓nginx,就可以生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章