▲單獨(dú)架構(gòu)的小伙伴看這里:(學(xué)習(xí)杰哥視頻的作業(yè)第5-6天)
1、實(shí)現(xiàn)haproxy+keepalived集群高可用集群轉(zhuǎn)發(fā)
一、實(shí)驗(yàn)環(huán)境:
1、haproxy+keepalived:192.168.37.101-102
2、VIP:192.168.37.200
3、web服務(wù)器:192.168.37.103-104
3.1 分別在兩臺(tái)web服務(wù)器安裝httpd
# yum install httpd
3.2 web服務(wù)器1:192.168.37.103
# echo web1:192.168.37.103 > /var/www/html/index.html
3.3 web服務(wù)器2:192.168.37.104
# echo web2:192.168.37.104?> /var/www/html/index.html
二、修改兩臺(tái)haproxy+keepalived服務(wù)器系統(tǒng)參數(shù),使haproxy可以綁定在不存在的IP地址,和開(kāi)啟IP地址轉(zhuǎn)發(fā);并使配置生效
# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
# sysctl -p
三、haproxy+keepalived主服務(wù)器
1、安裝haproxy和keepalived
# yum install haproxy keepalived
2、配置主keepalived
# vim /etc/keepalived/keepalived.conf
global_defs {
? notification_email {
? ? root@localhost
? }
? notification_email_from keepalived@localhost
? smtp_server 127.0.0.1
? smtp_connect_timeout 30
? router_id server1
? vrrp_skip_check_adv_addr
? vrrp_strict
? vrrp_garp_interval 0
? vrrp_gna_interval 0
? vrrp_iptables
}
vrrp_instance VIP1{
? ? state MASTER
? ? interface eth0
? ? virtual_router_id 51
? ? priority 100
? ? advert_int 1
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? auth_pass 123456
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.37.200 dev eth0 lable eth0:1
? ? }
}
3、配置haproxy
# vim /etc/haproxy/haproxy.cfg
listen web
? ? bind 192.168.37.200:80
? ? server web1 192.168.37.103 weight 1 check inter 3000 fall 3 rise 5
? ? server web1 192.168.37.104 weight 1 check inter 3000 fall 3 rise 5
四、haproxy+keepalived從服務(wù)器
1、安裝haproxy和keepalived
# yum install haproxy keepalived
2、配置從keepalived
# vim /etc/keepalived/keepalived.conf
global_defs {
? notification_email {
? ? root@localhost
? }
? notification_email_from keepalived@localhost
? smtp_server 127.0.0.1
? smtp_connect_timeout 30
? router_id server2
? vrrp_skip_check_adv_addr
? vrrp_strict
? vrrp_garp_interval 0
? vrrp_gna_interval 0
? vrrp_iptables
}
vrrp_instance VI_1 {
? ? state BACKUP
? ? interface eth0
? ? virtual_router_id 51
? ? priority 80
? ? advert_int 1
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? auth_pass 123456
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.37.200 dev eth0 lable eth0:1
? ? }
}
3、配置haproxy
# vim /etc/haproxy/haproxy.cfg
listen web
? ? bind 192.168.37.200:80
? ? server web1 192.168.37.103 weight 1 check inter 3000 fall 3 rise 5
? ? server web1 192.168.37.104 weight 1 check inter 3000 fall 3 rise 5
2、實(shí)現(xiàn)LVS+keepalived高可用集群。
一、實(shí)驗(yàn)環(huán)境:
1、lvs+keepalived:192.168.37.101-102
2、VIP:192.168.37.200
3、web服務(wù)器:192.168.37.103-104
3.1 分別在兩臺(tái)web服務(wù)器安裝httpd
# yum install httpd
3.2 web服務(wù)器1:192.168.37.103
# echo web1:192.168.37.103?> /var/www/html/index.html
3.3 web服務(wù)器2:192.168.37.104
# echo web2:192.168.37.104?> /var/www/html/index.html
二、配置keepalived服務(wù)器(兩臺(tái)都要配置)
1、在 /etc/keepalived/keepalived.conf? 文件內(nèi)容尾增加如下代碼:
include /etc/keepalived/conf.d/*.conf
2、編輯keepalived的lvs部分配置文件
# vim /etc/keepalived/conf.d/dr.conf
virtual_server 192.168.37.200 80 {
? ? delay_loop 10? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? lb_algo rr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? lb_kind DR? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? !persistence 60? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? protocol TCP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? real_server 192.168.37.103 80 {
? ? ? ? weight 1? ?
? ? ? ? TCP_CHECK {? ??
? ? ? ? ? ? connect_port 80??
? ? ? ? ? ? connect_timeout 3? ?
? ? ? ? ? ? nb_get_retry 3? ?
? ? ? ? ? ? delay_before_retry 3
? ? ? ? }
? ? }
? ? real_server 192.168.37.104 80 {
? ? ? ? weight 1
? ? ? ? TCP_CHECK {
? ? ? ? ? ? connect_port 80
? ? ? ? ? ? connect_timeout 3
? ? ? ? ? ? nb_get_retry 3
? ? ? ? ? ? delay_before_retry 3
? ? ? ? }
? ? }
}
三、WEB服務(wù)器端操作(兩臺(tái)同樣操作)
# vim? lvs_web.sh
#!/bin/bash
vip=192.168.37.200
mask='255.255.255.255'
dev=lo:1
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
;;
stop)
ifconfig $dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac
# bash lvs_web.sh start