1. 程式人生 > >負載均衡器HAProxy,高可用集群keepalived,keepalived+lvs

負載均衡器HAProxy,高可用集群keepalived,keepalived+lvs

BE ID log var def fall 集群 sad 查看

負載均衡器:nginx/haproxy/lvs/F5
代理:
正向代理:幫助客戶端緩存服務器上的數據
反向代理:幫助服務器緩存數據

HAProxy:
1、安裝
[root@vh04 bin]# yum install -y haproxy
2、修改配置文件
[root@vh04 bin]# vim /etc/haproxy/haproxy.cfg
把# main frontend which proxys to the backends後面部分全部刪除,增加以下內容:
定義一個監控頁面
listen stats
bind 0.0.0.0:1080
stats refresh 30s
stats uri /mystats
stats realm Ha Manager

stats auth admin:admin

listen web-discuz 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin
server web1 192.168.4.2:80 cookie a1i1 check inter 2000 rise 2 fall
5
server web2 192.168.4.3:80 cookie a1i2 check inter 2000 rise 2 fall 5
3、啟服務
[root@vh04 bin]# systemctl start haproxy
4、訪問http://192.168.4.4可以實現負載均衡輪詢調度,訪問http://192.168.4.4:1080/mystats可以看到監控頁面

配置vh04為日誌服務器,以便於可以接收到haproxy通過網絡發來的日誌
1、配置vh04接受網絡發來的日誌
[root@vh04 bin]# vim /etc/rsyslog.conf

Provides UDP syslog reception

$ModLoad imudp
$UDPServerRun 514

Provides TCP syslog reception

$ModLoad imtcp
$InputTCPServerRun 514
2、重啟日誌服務
[root@vh04 bin]# systemctl restart rsyslog
3、跟蹤日誌尾部,訪問http://192.168.4.4可以看到日誌

[root@vh04 bin]# tail -f /var/log/messages

可以執行logger命令,向syslog寫日誌,如
[root@vh04 bin]# logger "my test log"
[root@vh04 bin]# tail -2 /var/log/messages

HSRP:熱備份路由協議,cisco私有
VRRP:虛擬冗余路由協議,IETF(Internet工程師任務組)共公標準
HA:高可用
心跳:HearBeat,相當於是路由器設備上的hello消息

雙機熱備:keepalived
一、實現高可用的web集群
1、拓撲:兩臺Web服務器,一臺數據庫服務器。
2、在web服務器上安裝keepalived
[root@vh02 ~]# yum install -y keepalived
3、修改配置
[root@vh02 ~]# vim /etc/keepalived/keepalived.conf

vrrp_strict 註釋掉這一行

vrrp_instance VI_1 {
state MASTER 從屬服務器改為BACKUP
interface eth0
virtual_router_id 51 虛擬路由器ID
priority 150 優先級
advert_int 1 心跳消息1s發一個
authentication { 兩邊的共享密碼
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { 虛擬IP地址
192.168.4.200
}
}
後續內容全部刪除
4、啟服務
[root@vh02 ~]# systemctl start keepalived
5、查看虛擬ip地址
[root@vh02 ~]# ip address show eth0
6、驗證:把vh02的keepalived停掉,vip將出現在vh03上

配置高可用、負載均衡的web集群
1、創建虛擬機vh05(用作額外的調度器)
Vh05.tedu.cn 192.168.4.5/24 selinux/firewall/yum
2、清除vh04上lvs的規則,因為規則將由keepalived配置
[root@vh04 bin]# ipvsadm -D -t 192.168.4.100:80
3、在vh05上安裝lvs
[root@vh05 ~]# yum install -y ipvsadm
4、web服務器需要在lo上配置vip,需要修改內核參數
5、不要在調度器上手工配置VIP,因為VIP由keepalived決定出現在哪臺調度器上。所以要把vh04的VIP清除
[root@vh04 bin]# ifdown eth0:0
[root@vh04 bin]# rm -f /etc/sysconfig/network-scripts/ifcfg-eth0:0
6、在調度器上安裝keepalived
[root@vh04 bin]# yum install -y keepalived
7、修改配置
[root@vh04 bin]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {root@localhost
br/>root@localhost
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr

vrrp_strict

vrrp_garp_interval 0
vrrp_gna_interval 0
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100
}
}

virtual_server 192.168.4.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50 # 50秒內,相同客戶端總是調度到相同服務器
protocol TCP

real_server 192.168.4.2 80 {
    weight 1
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }
}
real_server 192.168.4.3 80 {
    weight 1
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }
}

}
刪除配置文件後續內容
8、啟動服務
[root@vh04 bin]# systemctl start keepalived
9、備份lvs調度器啟動後,沒有VIP。可以把vh04關機,再查看vh05的情況

負載均衡器HAProxy,高可用集群keepalived,keepalived+lvs