使用Haproxy搭建Web羣集

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

*Haproxy 與LVS、Nginx的比較  web

*LVS性能最好,可是搭建相對複雜  *算法

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

HTTP請求服務器

經過URL訪問網站使用的協議是HTTP協議,此類請求通常稱爲HTTP請求。併發

HTTP請求的方式爲GET方式和POST方式。負載均衡

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

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

*負載均衡經常使用調度算法  *性能

RRRound Robin):輪詢調度  *

LCLeast Connections):最小鏈接數  *

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

實驗拓撲圖

image.png

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

實驗過程

1、在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、主服務器的設置

在前邊的基礎上,按如下步驟作

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

2、從服務器配置

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

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

  3. 修改keepalived配置文件

只需修改router_id、state、priority參數便可,其餘保持一致就能夠了。

2018-01-30_222232.png

2018-01-30_222432.png

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

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

2018-01-30_205245.png

2018-01-30_205304.png

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

相關文章
相關標籤/搜索