FMS流媒体服务器集群

时间:2022-01-01 18:15:25

1.1         部署集群服务器

负载均衡设备不是基础网络设备,而是一种性能优化设备。首先,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,这就是我们常说的集群(clustering)技术。第二层含义就是:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。

那么什么是NAS存储,简单的说NAS存储就是基于专用硬件设备上的、安装特殊操作系统、具有强大用户访问权限管理功能、数据安全保护和恢复功能的文件服务器。

搭建点播模式的流媒体服务器拓扑结构如下:

第一种简单方式,其中的Load Balancer负载均衡可以多种技术,利用DNS配置多个IP指向一个域名或者是利用Nginx反向代理(http://blog.s135.com/post/306/):

第二种可扩展方式:

1.2         部署边缘服务器

边缘服务器工作作用以及工作流程如下:

边缘服务器的配置只要修改配置文件Vhost.xml就可以了,这个配置文件的具体路径是:FMS3安装目录\conf\conf\_defaultRoot_\_defaultVHost_\Vhost.xml,用记事本打开这个文件,作如下修改:

1.         找到<Proxy>节点,修改Mode属性为remote,即:

<Mode>remote</Mode>

2.         修改RouteEntry属性,如:

<RouteEntry>172.28.10.123:*;172.28.14.242:1935</RouteEntry>  

3.         重启FMS服务。

4.         如何访问:

nc.connect("rtmp://172.28.10.123");它指向到172.28.14.242 这个源服务器。下面访问的实际地址是:rtmp://172.28.14.242/vod/mp4:test/3d5.mp4

nc = new NetConnection();

nc.onStatus = function(info)

{

 trace(info.code);

 if (info.code == "NetConnection.Connect.Success")

 {

      trace("接通");

 }

};

nc.connect("rtmp://172.28.10.123/vod/");

res = new NetStream(nc);

view.attachVideo(res);

view.attachAudio(res); 

res.play("mp4:test/3d5.mp4");

 

1.3          Nginx对边缘服务器进行集群以及负载均衡配置

1.         Host文件中将域名www.bbkwzk.com指派,配置如下:

      127.0.0.1 www.bbkwzk.com

2.         负责负载均衡以及域名指派的边缘服务器配置如下:

upstream所支持的四个常用设置进行说明:

a)         轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down掉,能自动剔除。

b)        weight :指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

c)         ip_hash :每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

d)        fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。

e)         url_hash(第三方)

     upstream  www.bbkwzk.com{

                  ip_hash;

              server   172.28.10.83:80 weight=3;

              server   172.28.10.123:80;

      }

     

      server

      {

              listen  80;

              server_name  www.bbkwzk.com;

 

              location / {

                       proxy_pass         http://www.bbkwzk.com;

                       proxy_set_header   Host             www.bbkwzk.com;

                       proxy_next_upstream error timeout invalid_header http_500 http_502 http_504;

                       proxy_set_header   X-Real-IP        $remote_addr;

                     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

              }

 

              log_format  www_bbkwzk_com  '$remote_addr - $remote_user [$time_local] $request '

                                '"$status" $body_bytes_sent "$http_referer" '

                                '"$http_user_agent" "$http_x_forwarded_for"';

      }

1.4         前端web服务器配置

前端web服务器host文件配置:

172.28.10.123  www.***.com

127.0.0.1      video.***.com

前端web服务器需要指向流媒体服务器域名:www.bbkwzk.com

server {

        listen       80;

        server_name  video.bbkwzk.com;

        location / {                         

                      proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header Host $host;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            root   C:/FMS4/samples/bbkwzk;

            index  videoplayer.html;

        }  

 

    }

1.5         用户客户端配置

用户客户端host文件配置:

172.28.10.53      video.***.com(网站)

172.28.10.123     www.***.com(流媒体)