使用Haproxy搭建Web羣集

*Haproxy是目前比較流行的一種集羣調度工具  

*Haproxy 與LVS、Nginx的比較  

*LVS性能最好,但是搭建相對複雜  *

Nginx的upstream模塊支持集羣功能,但是對集羣節點健康檢查功能不強,性能沒有Haproxy好

HTTP請求

通過URL訪問網站使用的協議是HTTP協議,此類請求一般稱爲HTTP請求。

HTTP請求的方式爲GET方式和POST方式。

正常的狀態碼爲2xx、3xx;異常的狀態碼爲4xx、5xx

集羣的特性 :高性能、高可用

*負載均衡常用調度算法  *

RRRound Robin):輪詢調度  *

LCLeast Connections):最小連接數  *

SHSource Hashing):基於來源訪問調度  

實驗拓撲圖

image.png

一臺haproxy服務器,二臺nginx服務器(或Apache服務器),搭建兩個不同的網站(方便測試羣集),一臺客戶機上網測試。

實驗過程

一、在Haproxy服務器上操作

1.編譯安裝Haproxy

2018-01-30_203137.png

2.建立Haproxy的配置文件

2018-01-30_202509.png

3.Haproxy配置項介紹

Haproxy配置文件通常爲三個部分,即global(全局配置)、default(默認配置)和listen(應用組件配置)

2018-01-30_200841.png

2018-01-30_200918.png

2018-01-30_201754.png

4.創建自啓動腳本

2018-01-30_202642.png


5.在Nginx(Apache)建立網站測試(兩個網站服務器操作一致)

2018-01-30_203246.png

6.客戶端進行驗證

2018-01-30_202811.png

2018-01-30_202914.png

7.Haproxy的日誌

Haproxy的日誌默認是輸出到系統的syslog中,查看起來不是非常方便,爲了更好地管理Haproxy的日誌,我們在生產環境中一般單獨定義出來。

(1)修改Haproxy配置文件中關於日誌配置的選項

2018-01-30_203456.png

配置完成後,重啓Haproxy服務。

(2)修改rsyslog配置

爲了便於管理,將Haproxy相關的配置獨立定義到haproxy.conf,並放到/etc/rsyslog.d/下,rsyslog啓動時會自動加載此目錄下的所有配置文件。

2018-01-30_203647.png

加入下面的內容

2018-01-30_203725.png

這部分配置是將Haproxy的info日誌記錄到/var/log/haproxy/haproxy-info.log下,將notice日誌記錄到/var/log/haproxy/haproxy-notice.log下,其中“& ~"表示當日志寫入到日誌文件後,rsyslog停止處理這個信息。

然後保存配置文件並重啓rsyslog服務,完成rsyslog配置。

(3)測試日誌文件

2018-01-30_203944.png

8.Haproxy的參數優化

參數
參數說明
優化建議
maxconn
最大連接數
推薦使用10240
daemon
守護進程模式
建議使用
nbproc
負載均衡的併發進程數
建議與當前服務器CPU核數相等或爲其2倍
retries
重試次數
此參數主要用於對集羣節點的檢查,如果節點多,且併發量大,設置爲2此或3次;在服務器節點不多的情況下,可以設置5次或6次
option http-server-close
主動關閉http請求選項
建議使用,避免由於timeout時間設置過長導致http連接堆積
timeout http-keep-alive
長連接超時時間
可以設置爲10s
timeout http-request
http請求超時時間
建議將此時間設置爲5~10s,增加http連接釋放速度
timeout client
客戶端超時時間
建議設置爲1min左右就可以了

擴展

上圖中增加了一臺haproxy,用來做備份,在兩臺haproxy上面安裝keepalived,兩臺Haproxy操作步驟一致,只是配置文件有些區別

一、主服務器的設置

在前邊的基礎上,按以下步驟做

1.安裝keepalived

2018-01-30_205042.png

2018-01-30_205057.png

2.修改keepalived配置文件

vim  /etc/keepalived/keepalived.conf

2018-01-30_204155.png

2018-01-30_204247.png

上邊這些內容在配置文件必須添加或修改,下邊這些內容可以根據自身情況而定

2018-01-30_220235.png

2018-01-30_221005.png

配置完成後,重啓服務

2018-01-30_204428.png

注意:防火牆開啓224.0.0.18端口,這是keepalived的組播地址。

2018-01-30_221838.png

二、從服務器配置

  1. 安裝haproxy服務,及修改配置文件(方法同上)

  2. 安裝keepalived服務(方法同上)

  3. 修改keepalived配置文件

只需修改router_id、state、priority參數即可,其他保持一致就可以了。

2018-01-30_222232.png

2018-01-30_222432.png

4.重啓keepalived服務,設置防火牆規則

三、客戶機進行訪問,訪問虛擬IP:192.168.1.100

2018-01-30_205245.png

2018-01-30_205304.png

可以關掉主服務器,測試一樣可以訪問網站,這樣就實現了Haproxy高可用的特性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章