精講Haproxy搭建Web集羣

精講Haproxy搭建Web集羣

一、Haproxy應用分析

1、LVS在企業應用中抗負載能力很強,但存在不足
LVS不支持正則處理,不能實現動靜分離(nginx都支持)
對於大型網站,LVS的實施配置複雜,維護成本相對較高

2、Haproxy是一款可提供高可用性、負載均衡、及基於TCP和HTTP應用的代理的軟件
適用於負載大的Web站點
運行在硬件上可支持數以萬計的併發連接的連接請求

二、Haproxy調度算法原理

Haproxy支持多種調度算法,最常用的有三種

第一種(R算法):
R算法是最簡單最常用的一種算法,即輪詢調度
理解舉例
有三個節點A、B、C,第一個用戶訪問會被指派到節點A,第二個用戶訪問會被指派到節點B,第三個用戶訪問會被指派到C節點
第四個用戶訪問繼續指派到節點A,輪詢分配訪問請求實現負載均衡效果

第二種(LC算法):
LC算法即最小連接數算法,根據後端的節點連接數大小動態分配前端請求
理解舉例
有三個節點A、B、C,各節點的連接數分別爲A:4、B:5、C:6,此時如果有第一個用戶連接請求,會被指派到A上,連接數變爲A:5、B:5、C:6
第二個用戶請求會繼續分配到A上,連接數變爲A6、B:5、C:6;再有新的請求會分配給B,每次將新的請求指派給連接數最小的客戶端
由於實際情況下A、B、C的連接數會動態釋放,很難會出現一樣連接數的情況,因此此算法相比較rr算法有很大改進,是目前用到比較多的一種算法

第三種(SH):
SH即基於來源訪問調度算法,此算法用於一些有 Session會話記錄在服務器端的場景,可以基於來源的IP、Cookie等做集羣調度(上一次請求分給哪個web服務器的下次還是分給該服務器)
理解舉例
有三個節點A、B、C,第一個用戶第一次訪問被指派到了A,第二個用戶第次訪問被指派到了B
當第一個用戶第二次訪問時會被繼續指派到A,第二個用戶第二次訪問時依舊會被指派到B,只要負載均衡調度器不重啓,第一個用戶訪問都會被指派到A,第二個用戶訪問都會被指派到B,實現集羣的調度
此調度算法好處是實現會話保持,但某些IP訪問量非常大時會引起負載不均衡,部分節點訪問量超大,影響業務使用

三、Haproxy配置文件詳解

3.1、Haproxy配置文件通常分爲三個部分
● global:全局配置
● defaults:默認配置
● listen:應用組件配置

3.2、global配置參數
●log127.0.0.1 lcal0:配置日誌記錄,local0爲日誌設備,默認存放到系統日誌
●log127.0.0.1 loca1 notice:notice爲日誌級別,通常有24個級別
●maxconn4096:最大連接數
●uid 99:用戶uid
●gid 99:用戶gid

3.3、defaults配置項配置默認參數
一般會被應用組件繼承,如果在應用組件中沒有特別聲明,將安裝默認配置參數設置
●log global:定義日誌爲global配置中的日誌定義
●mode http:模式爲http
●option httplog:採用http日誌格式記錄日誌
●retries 3:檢查節點服務器失敗連續達到三次則認爲節點不可用
●maxconn2000:最大連接數
●contimeout5000:連接超時時間
●clitimeout50000:客戶端超時時間
●srvtimeout50000:服務器超時時間

3.4、listen配置項目一般爲配置應用模塊參數
●listen appli4- backup 0.0.0.0:10004:定義一個appli4- backup的應用
●option httpchk /index.html檢查服務器的index.html文件
●option persist:強制將請求發送到已經down掉的服務器(註釋掉,否則起服務會報錯)
●balance roundrobin:負載均衡調度算法使用輪詢算法
●server inst1 192.168.114.56:80 check inter 2000 fall 3:定義在線節點
●server inst2 192.168 114.56:81 check inter 2000 fall 3 backup:定義備份節點

四 架構流程

nginx服務器配置

4.1 安裝依賴環境

在這裏插入圖片描述

4.2、編譯安裝nginx,並創建用戶nginx

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

4.3、爲兩臺nginx服務器創建首頁內容並優化啓動項

在這裏插入圖片描述

在這裏插入圖片描述

Haproxy服務器

1.安裝依賴環境

在這裏插入圖片描述

2、安裝haproxy軟件包

在這裏插入圖片描述

3、在/etc目錄下創建haproxy目錄,將軟件包中的配置文件模板複製到haproxy目錄中

在這裏插入圖片描述

4、修改haproxy.cfg配置參數

在這裏插入圖片描述

5、優化服務啓動

在這裏插入圖片描述

6. 驗證

在這裏插入圖片描述

在這裏插入圖片描述