haproxy羣集調度器搭建web羣集
1:haproxy調度器是目前市場上比較流行的羣集調度器,當然調度器有好多種類:lvs、nginx、和haproxy,接下來對它們進行比較看看它們的優缺點:
lvs:工作在七層模型的4層傳輸層:根據ip+端口進行訪問;不考慮訪問的內容,可以任意訪問,基於ip地址,能實現所有應用構建的羣集,性能好,可以和keepalived完美結合。穩定性能好。健康檢查節點服務器性能較好;搭建時結構相對複雜
nginx:工作在7層應用層,根據內容、ip網頁進行給用戶分配內容,健康檢查節點服務器功能較弱,要配合upstream模塊可對羣集進行管理
haproxy:同樣也工作在7層的程序,但它的配置簡單,也可以和keepalived完美結合
2:haproxy對http的請求:
分爲兩種方式:
GET:提交用戶的訪問,屬於明文提交,提交內容不得超過8kb,安全性差
POST: 屬於加密傳輸;安全性較好
通過訪問一般反饋給客戶端的狀態碼爲:(200.301)如果返回的是(400、500)表示發生異常或者錯誤
3:負載均衡羣集的調度算法(lvs、nginx、harpoxy常用)
(1)RR:輪詢調度算法;根據節點服務器的權重輪詢分配訪問請求
(2)LC:最小連接數算法;根據節點服務器的連接數多少分配給連接數最少的節點服務器
(3)SH: 基於來源訪問調度算法法;根據實際環境情況,對訪問客戶進行有選擇的進行連接節點服務器
當然還有許多的web羣集調度器;如梭子魚、綠盟等
4:本次使用的環境案例是兩臺web服務和一臺harpoxy服務器
編譯安裝Haproxy
#yum -y install pcre-devel bzip2-devel 解決依賴關係安裝關係庫
[root@centos1 haproxy-1.4.24]# tar xf /mnt/haproxy-1.4.24.tar.gz -C /usr/src
[root@centos1 haproxy-1.4.24]# cd /usr/src/haproxy-1.4.24
#make TARGET=linux26 使用linux的2.6版本內核
#make install
haproxy服務器配置
(1)、建立haproxy的配置文件
#mkdir /etc/haproxy
#cp examples/haproxy.cfg /etc/haproxy/ 將haproxy文件的模板複製的/etc/haproxy目錄中文以後的修改增加便捷
#vim /etc/haproxy/haproxy.cfg 文件的配置內容有三部分 global全局配置、defaults默認配置、listen應用組件配置配置內容如下
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
# chroot /usr/share/haproxy
uid 99
gid 99
daemon
nbproc 4
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
# redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.2.2:80 check inter 2000 fall 3
server inst2 192.168.2.3:80 check inter 2000 fall 3
(2)創建自啓動腳本
#cp/usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy 做軟連接,在環境變量中使用haproxy
# chmod +x /etc/init.d/haproxy 給文件可執行權限
#service haproxy start
#service iptables stop
(3)測試web羣集 web1網頁內容爲how are you web2 內容爲welcome to beijing 爲了測試負載均衡所以將網頁內容設置爲不同
(4)haproxy的日誌 ;由於haproxy的日誌存放在系統日誌中不方便管理所以將日誌的等級分爲不同的日誌從放目錄:
創建一個關於haproxy的目錄爲以後的管理方便:
touch /etc/rsyslog.d/haproxy.conf的文件
在配置/etc/rsyslog.d/haproxy.conf文件之前先修改/etc/haproxy/haproxy.cfg文件內容如下: 完成後重啓haproxy服務
vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
配置完成後要重新啓動rsyslog服務 service rsyslog restart
測試日誌信息
# tail -f /var/log/haproxy/haproxy-info.log tail -f 表示動態刷新,查看
然後在客戶機上訪問,觀察日誌