Nginx實現HTTP負載均衡和TCP負載均衡

2021-10-23 22:39:07 字數 1918 閱讀 6520

} }以上測試乙個瀏覽器訪問80埠,實現訪問不同的server。

stream 

server 

}

以上可以實現乙個簡單的rtmp流的**。

nginx-1.9.0 已發布,該版本增加了 stream 模組用於一般的 tcp **和負載均衡,ngx_stream_core_module這個模組在1.90版本後將被啟用。但是並不會預設安裝,需要在編譯時通過指定 --with-stream 引數來啟用這個模組。

(1)配置nginx編譯檔案引數

(2)編譯、安裝,make,make install .

(3)配置nginx.conf檔案

stream 

server 

}

建立最高端別的stream(與http同一級別),定義乙個upstream組 名稱為rtmp,由多個服務組成達到負載均衡 定義乙個服務用來監聽tcp連線(如:1935埠),並且把他們**到乙個upstream組的rtmp中,配置負載均衡的方法和引數為每個server;配置些如:連線數、權重等等。

首先建立乙個server組,用來作為tcp負載均衡組。定義乙個upstream塊在stream上下文中,在這個塊裡面新增由server命令定義的server,指定他的ip位址和主機名(能夠被解析成多位址的主機名)和埠號。下面的例子是建立乙個被稱之為rtmp組,兩個監聽1395埠的server ,乙個監聽8089埠的server。

upstream rtmp 

注意:你不能為每個server定義協議,因為這個stream命令建立tcp作為整個 server的協議了。

配置反向**使nginx能夠把tcp請求從乙個客戶端**到負載均衡組中(如:rtmp組)。在每個server配置塊中 通過每個虛擬server的server的配置資訊和在每個server中定義的監聽埠(客戶端需求的**埠號,如我推流的的是rtmp協議,則埠號為:1935)的配置資訊和proxy_passs 命令把tcp通訊傳送到upstream的哪個server中去。下面我們將tcp通訊傳送到rtmp 組中去。

server 

當然我們也可以採用單一的**方式:

server 

(4)改變負載均衡的方法:

預設nginx是通過輪詢演算法來進行負載均衡的通訊的。引導這個請求迴圈的到配置在upstream組中server埠上去。 因為他是預設的方法,這裡沒有輪詢命令,只是簡單的建立乙個upstream配置組在這兒stream山下文中,而且在其中新增server。

1、least-connected :對於每個請求,nginx plus選擇當前連線數最少的server來處理:

upstream rtmp 

2、least time :對於每個鏈結,nginx pluns 通過幾點來選擇server的: 最底平均延時:通過包含在least_time命令中指定的引數計算出來的:

upstream rtmp 

upstream rtmp {

hash $remote_addr consistent;

server 127.0.0.1:8089; # 這裡配置成要訪問的位址

server 127.0.0.2:1935;

server 127.0.0.3:1935; #需要**的埠,在這裡我**一乙個rtmp模組的介面1935

Nginx實現負載均衡

負載均衡 建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬 增加吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡,英文名稱為load balance,其意思就是分攤到多個操作單元上進行執行,例如web伺服器 ftp伺服器 企業關鍵應用伺服器和其它關...

nginx實現負載均衡

目錄結構 conf 配置目錄 html 靜態頁面目錄 logs 日誌目錄 sbin 主程式 nginx支援的負載均衡方式 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的...

nginx實現負載均衡

初步設想 1個前端伺服器 n個應用伺服器,實現不宕機發布。前提 後端應用共享session,可以考慮redis實現。初步實驗 nginx 2個tomcat執行測試 先準備乙個nginx,nginx.conf檔案內容如下 然後準備2個tomcat 設定埠分別為8084 8086。在root資料夾下面各...