使用nginx做为http-flv服务如何解决跨域问题

什么是跨域

跨域是指浏览器的同源策略限制,这个策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。如果一个请求url的协议、域名、端口三者之间任意一个与当前页面的url不同即为跨域。

如下图所示即为跨域时的报错:

使用nginx搭建http-flv服务

主要使用了nginx和nginx-http-flv-module模块,具体过程可参考:https://blog.csdn.net/rain_meter/article/details/88127209

配置好之后的主要配置如下图所示:

使用nginx做为http-flv服务如何解决跨域问题_第1张图片

使用nginx做为http-flv服务如何解决跨域问题_第2张图片

此时我们可以正常的推流,并通过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';

效果如下图所示:

使用nginx做为http-flv服务如何解决跨域问题_第3张图片

然后reload或者重启nginx,就可以生效。

你可能感兴趣的:(流媒体)