使用Haproxy搭建Web群集

2021-10-10 22:15:36 字數 1806 閱讀 9656

技能展示::

熟悉haproxy功能及常用群集排程演算法

學會haproxy常用配置

學會haproxy引數優化

簡介

在前面已經學習了使用nginx. lvs做負載均衡群集,它們都具有各自的特點,本章將要介紹另、一款比較流行的群集排程工具haproxy,首先介紹負載均衡常用排程演算法,然後介紹haproxy搭建web群集的方法,最後介紹haproxy的引數優化和日誌配置。

重點

負載均衡常用排程演算法

使用haproxy搭建web群集

理論講解

1.案例概述

haproxy是目前比較流行的一種群集排程工具,同類群集排程工具有很多,如lvs和nginx,相比較而言, lvs效能最好,但是搭建相對複雜, nginx的upstream模組支援群集功能,但是對群集節點健康檢查功能不強,效能沒有haproxy好. haproxy官方**是本案例介紹使用haproxy及nginx搭建一套web群集。

2.例前置知識點

http請求通過ual訪問**使用的協議是http協議,此類請求一般稱為http請求, http請求的方式分為get方式和post方式。當使用瀏覽器訪問某乙個url,會根據請求url返回狀態碼,通常正常的狀態碼為2×x. 3xx(如200, 301),如果出現異常會返回4×x. 5x x(如400. 500)。

例如,訪問就是乙個get請求,如果訪問正常,會從伺服器的日誌中獲取200狀態碼,假如此請求使用post方式,那麼傳遞給a.php的d引數依舊是123,但是瀏覽器的url將不會顯示後面的1ad-123字樣,因此表單類或者有使用者名稱、密碼等內容提交時建議使用post方式,不管使用哪種方式,最終a.php獲取的值是一樣的。

2)負載均衡常用排程演算法lvs, haproxy, nginx最常用的排程演算法有三種,如下所述。(1) r (round robin). r演算法是最簡單最常用的一種演算法,即輪詢排程。例如,有三個節點a.b.c,第乙個使用者訪問會被指派到節點a,第二個使用者訪問會被指派到節點b,第三個使用者訪問會被指派到節點c,第四個使用者訪問繼續指派到節點a,輪詢分配訪問請求實現負載均衡效果。此演算法還有一種加權輪詢 即根據每個節點的權重輪詢分配訪問請求。

(2) lc (least cornections), lc演算法即最小連線數演算法,根據後端的節點連線數大小動態分配前端請求。例如,有三個節點a. b. c,各節點的連線數分別為a:4. b:5, c:6,此時如果有第一,個使用者連線請求,會被指派到a上,連線數變為a:5, b:5, c:6;第二個使用者請求會繼續分配到a上,連線數變為a:6, b:5, c:6,再有新的請求會分配給b,每次將新的請求指派給連線數最小的客戶端。由於實際情況下a. b.c的連線數會動態釋放,很難會出現一樣連線數的情況,因此此演算法相比較r演算法有很大改講 是目前用到比較多的一種演算法。

(3) sh (source hashing). sh即基於**訪問排程演算法,此演算法用於一些有session會話記錄在伺服器端的場景,可以基於**的p. cookie等做群集排程。例如,使用基於源p的群集排程演算法有三個節點a, b. c,第乙個使用者第一次訪問被指派到了a,第二個使用者第一次訪問被指派到了b·當第乙個使用者第二次訪問時會被繼續指派到a,第二個使用者第二次訪問時依舊會被指派到b,只要負載均衡排程器不重啟,第乙個使用者訪問都會被指派到a,第二個使用者訪問都會被指派到b,實現群集的排程,此排程演算法好處是實現會話保持,但某些p訪問量非常大時會引起負載不均衡,部分節點訪問量超大,影響業務使用。

3)常見的web群集排程器目前常見的web群集排程器分為軟體和硬體,軟體通常使用開源的lvs, haproxy. nginx, 硬體一般使用比較多的是f5,也有很多人使用國內的一些產品,如樓子魚,綠盟等。

Haproxy搭建Web群集概述

博文目錄 一 haproxy概述 1 http請求 2 負載均衡常用排程演算法 3 常見的web群集排程器 二 haproxy配置項介紹 1 global配置項通常有下面配置引數 2 defaults配置項配置預設引數,一般會被應用元件繼承,如果在應用元件中沒有特別的宣告,將安裝預設配置引數 3 l...

Haproxy搭建 Web 群集實驗

nginx節點伺服器部署 192.168.199.20 192.168.199.30 啟動haproxy服務 192.168.199.10 瀏覽器測試 web 群集 日誌定義 主機作業系統 ip位址 haproxy server centos7 192.168.199.10 nginx server...

Haproxy負載均衡,環境搭建

拉取映象 docker pull haproxy 1.9.3 建立目錄,用於存放配置檔案 mkdir usr local haproxy 建立容器 docker create name haproxy net host v usr local haproxy usr local etc haprox...