haproxy负载均衡_使用haproxy搭建web集群
會不會有那么一天,生活可以簡單到每天清早踏上一輛載著鮮花的腳踏車,微笑著穿過窄窄的街巷,為愛花的人送去芬芳,為需要知識的你送去幫助。
簡介
在前面已經學習了使用Nginx、LVS做負載均衡群集,它們都具有各自的特點,本章將要介紹另一款比較流行的群集調度工具Haproxy。首先介紹負載均衡常用調度算法,然后介紹Haproxy 搭建Web群集的方法.最后介紹Haproxy的參數優化和日志配置。
本章重點
負載均衡常用調度算法
使用Haproxy 搭建Web群集
一,HTTP請求
????1.http
????????通過URL訪問網站使用的協議是HTTP協議,此類請求一般稱為HTTP請求。HTTP請求的方式分為GET方式和POST方式。當使用瀏覽器訪問某一個URL,會根據請求URL返回狀態碼,通常正常的狀態碼為2××、3××(如200、301),如果出現異常會返回4××、5××(如400,500)。
????????例如,訪問http://www.test.com/a.php2ld=123.就是一個GET請求,如果訪問正常,會從服務器的日志中獲取200狀態碼。假如此請求使用POST方式,那么傳遞給a.php的ld參數依舊是123,但是瀏覽器的URL將不會顯示后面的ld=123字樣,因此表單類或者有用戶名、密碼等內容提交時建議使用POST方式。不管使用哪種方式,最終a.php獲取的值是一樣的。
????????2.負載均衡常用調度算法
LVS、Haproxy.Nginx最常用的調度算法有三種,如下所述。
????????RR(Round Robin):RR算法是最簡單最常用的一種算法,即輪詢調度。例如,有三個節點A.B.C.第一個用戶訪問會被指派到節點A.第二個用戶訪問會被指派到節點B.第三個用戶訪問會被指派到節點C.第四個用戶訪問繼續指派到節點A.輪詢分配訪問請求實現負載均衡效果。此算法還有一種加權輪詢,即根據每個節點的權重輪詢分配訪問請求。
????????LC(Least Conmections):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的連接數會動態釋放,很難會出現一樣連接數的情況,因此此算法相比較rr算法有很大改進,是目前用到比較多的一種算法。
????????SH(Source Hashing):SH即基于來源訪問調度算法,此算法用于一些有Session會話記錄在服務器端的場景,可以基于來源的IP,Cookie等做群集調度。例如,使用基于源IP的群集調度算法,有三個節點A.B、C.第一個用戶第一次訪問被指派到了A,第二個用戶第一次訪問被指派到了B.
當第一個用戶第二次訪問時會被繼續指派到A.第二個用戶第二次訪問時依舊會被指派到B,只要負載均衡調度器不重啟,第一個用戶訪問都會被指派到A,第二個用戶訪問都會被指派到B,實現群集的調度。此調度算法好處是實現會話保持,但某些P訪問量非常大時會引起負載不均衡,部分節點訪問量超大,影響業務使用。
????????3.常見的Web群集調度器
????????目前常見的Web群集調度器分為軟件和硬件,軟件通常使用開源的LVS.Haproxy.Nginx,硬件一般使用比較多的是F5,也有很多人使用國內的一些產品,如梭子魚、綠盟等。
二,案例
????????1.案例環境
| 主機 | 操作系統 | IP地址 |
| apache服務器1 | Centos7.4 | 192.168.100.10 |
| apache服務器2 | Centos7.4 | 192.168.100.20 |
| haproxy | Centos7.4 | 外網IP:192.168.200.10 內網IP:192.168.100.30 |
| win10測試 | win10企業版 | 192.168.200.10 |
????2.搭建兩臺Apache服務器
由于兩臺Apache服務搭建過程一樣,這里只演示一臺搭建過程供參考
安裝http服務
????3.向網站主頁文件輸入內容"centos01111111"(第二臺apache服務器輸入“centos0222222”)
????4.啟動服務并設置為開機自啟
? ?5.分別測試兩臺apache的可用性
6.配置haproxy
????1)安裝依賴
????2)使用源代碼方式將haproxy解壓到/usr/src下
并支持64位系統
????3)安裝
????4)生成主配置文件
????5)生成服務控制文件
????6)備份主配置文件并進行修改支持負載均衡
??????? Haproxy配置文件通常分為三個部分,即global、defaults和listen。global為全局配置,defaults為默認配置,listen為應用組件配置。
??????? global配置項通常有下面配置參數,以示例參數說明如下。
??????? defaults配置項配置默認參數,一般會被應用組件繼承,如果在應用組件中沒有特別聲明,將安裝默認配置參數設置。
????7)創建臨時運行目錄
????8)設置為系統服務并設置為開機自啟
????9)修改外網IP地址
????????10)開啟haproxy
測試:
測試環境?:win10為vmnet2模式
更改IP繼續訪問
三,Haproxy的日志
??????? Haproxy 的日志默認輸出到系統的syslog中,查看起來不是非常方便,為了更好地管理Haproxy的日志,我們在生產環境中一般單獨定義出來,定義的方法如下所述。
(1)修改Haproxy配置文件中關于日志配置的選項,將原有的日志配置更改為以下配置:
這兩行配置放到Haproxy的global 配置項目中,主要是將Haproxy的info及notice日志分別記錄到不同的日志文件中。
重啟Haproxy,完成Haproxy配置。
(2)修改rsyslog配置。
為了便于管理,將Haproxy相關的配置獨立定義到haproxy.conf.并放到/etc/rsyslog.d/下,rsyslog啟動時會自動加載此目錄下的所有配置文件。
加入下面的內容:
這部分配置是將Haproxy的info 日志記錄到/var/log/haproxy/haproxy-info.log下,將notice日志記錄到/var/log/haproxy/haproxy-notice.log下,其中“&~”表示當日志寫入日志文件后,rsyslog停止處理這個信息。這里配置的語法是使用rainerscript腳本語言寫的。
保存配置文件并重啟rsyslog服務,完成rsyslog配置。
(3)測試日志信息。
在客戶端訪問hup://192.168.1.60/test.html后,可以使用tail-f/var/log/haproxy/
haproxy-info.log 即時查看Haproxy的訪問請求日志信息。
故事很短,道理很長,學無止境,不忘初心,砥礪前行 ?
微信搜索 “徐阿馬” ?關注公眾號,期待你的關注!
總結
以上是生活随笔為你收集整理的haproxy负载均衡_使用haproxy搭建web集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯视频发现点赞的视频在哪里(海量高清视
- 下一篇: 622841开头是什么银行的卡