diary_report.jpg
接着上一篇。
Keepalived是一个高性能的服务器高可用解决方案,Keepalived主要防止服务器单点故障的发生问题,可以通过Nginx的配合实现web服务端的高可用。
高可用是指同一时间提供服务的只有一台设备,主服务器挂掉后,备用服务器便开始提供服务。
nginx的http模块使用pcre来解析正则表达式 pcre-devel是使用pcre开发的一个二次库,nginx也需要。 zlib提供了很多种压缩的方式,nginx使用zlib对http包的内容进行gzip nginx支持https,所以需要安装openssl库。
image.png
image.png
image.png
image.png
image.png
image.png
image.png
! Configuration File for keepalived
global_defs {
router_id nginx_cx_7_no_1
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 77
mcast_src_ip 192.168.12.77
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.12.111
}
}
global_defs { router_id nginx1 }
2.每隔2s去执行/etc/keepalived/nginx_check.sh脚本,这一项检查从开始便一直进行,interval表示间隔时间,weight -20代表脚本执行成功后192.168.12.77这个节点的优先级降低20. vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } 3.state MASTER表示该节点角色为master,interface eth0表示设备的网卡是eth0,virtual_router_id 77是取自当前设备的ip也就是192.168.12.77的后两位。mcast_src_ip 192.168.12.7指定当前设备的ip,priority 100代表优先级是100,优先级在keepalived实现高可用方面超级重要。keepalived是根据优先级来选择当前提供服务的设备。
authentication { auth_type PASS auth_pass 1111 }
6.track_script里面的chk_nginx要与前面定义的定时执行脚本名(vrrp_script chk_nginx { } )保持一致。
virtual_ipaddress { 192.168.12.111 }
global_defs {
router_id nginx_cx_8_no_2
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 77
mcast_src_ip 192.168.12.88
priority 90
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.12.111
}
}
image.png
image.png
image.png
*在/etc/keepalived/目录下,创建nginx_check.sh,命令:touch nginx_check.sh,然后写入以下脚本:
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
美滋滋,Nginx高可用集群已被搞定。下一篇讲如何把Nginx高可用集群应用到FastDFS集群当中。