1.1 部署叢集伺服器
負載平衡裝置不是基礎網路裝置,而是一種效能最佳化裝置。首先,單個重負載的運算分擔到多台節點裝置上做平行處理,每個節點裝置處理結束後,將結果匯總,返回給使用者,系統處理能力得到大幅度提高,這就是我們常說的叢集(clustering)技術。第二層含義就是:大量的並發訪問或資料流量分擔到多台節點裝置上分別處理,減少使用者等待響應的時間,這主要針對Web伺服器、FTP伺服器、企業關鍵應用伺服器等網路應用。
那麼什麼是NAS儲存,簡單的說NAS儲存就是基於專用硬體裝置上的、安裝特殊作業系統、具有強大使用者存取權限管理功能、資料安全保護與復原功能的檔案伺服器。
搭建點播模式的流媒體伺服器拓撲結構如下:
第一種簡單方式,其中的Load Balancer負載平衡可以多種技術,利用DNS配置多個IP指向一個網域名稱或者是利用Nginx反向 Proxy(http://blog.s135.com/post/306/):
第二種可擴充方式:
1.2 部署Edge Server
Edge Server工作作用以及工作流程如下:
Edge Server的配置只要修改設定檔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對Edge Server進行叢集以及負載平衡配置
1. Host檔案中將網域名稱www.bbkwzk.com指派,配置如下:
127.0.0.1 www.bbkwzk.com
2. 負責負載平衡以及網域名稱指派的Edge Server配置如下:
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(流媒體)