准备两台机器做真实服务器(机器131和133),准备一台客户机(机器132),准备两台做分发器(机器130和134)并将它们做成高可用
先做真实服务器(机器131和133)的环境
另一台真实服务器(133)配置
两台真实服务器配好之后,让我们开始配置两台分发器(机器130和134)吧
这里为了保险起见可以做一步验证一步,这里选做,如果不想做直接跳高可用
下面开始结合高可用做,做高可用先装软件
yum -y install keepalived
并且将VIP释放掉,让HA软件自动分配给它
客户端测试
然后我们停掉DR2(master)在看看VIP的位置是否到了DR(backup)上
客户端测试
没有问题,转换完成之后用客户端访问会有些许延迟,最后能出效果就可以了
我们也可以在这个基础上再做另一个例子
这里如果用HAproxy和keepalived结合使用的话就要改keepalived的配置文件,
sed -ri “/1*(#|$)/d” /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10
maxconn 3000
listen stats
bind *:6666
stats enable
stats refresh 30s
stats hide-version
stats uri /haproxy
stats realm Haproxy\ stats
stats auth whoami:123
stats admin if TRUE
frontend http
mode http
bind *:80
default_backend httpservers
backend httpservers
balance roundrobin
server nginx1 192.168.157.132:80 check maxconn 2000
server nginx2 192.168.157.131:80 check maxconn 2000
server nginx3 192.168.157.133:80 check maxconn 2000
附图2
客户端测试只会有两个页面轮询
这里补上脚本,keepalived如果不配合LVS需要自己写个检测脚本
Vim /etc/keepalived/check_nginx_status.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &>/dev/null
if [ $? -ne 0 ];then
/etc/init.d/keepalived stop
fi
chmod a+x /etc/keepalived/check_haproxy_status.sh
然后在keepalived里面添加东西
! Configuration File for keepalived
global_defs {
router_id director1
}
vrrp_script check_haproxy { #这里加上脚本,并且指定检测时间这里设置成5秒
script “/etc/keepalived/check_haproxy_status.sh”
interval 5
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
nopreempt #这里设置后及时主机好了也不会抢回VIP
virtual_router_id 90
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.157,200
}
track_script { #这里调用上面的脚本
check_haproxy
}
}
\t ↩︎