nginx检测脚本html
#!/bin/bash run=`ps -C nginx --no-header | wc -l` if [ $run -eq 0 ] then /usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx sleep 3 if [ `ps -C nginx --no-header | wc -l` ] then killall keepalived fi fi
安装keepalivednginx
yum -y install gcc pcre-devel zlib-devel openssl-devel keepalived
配置/etc/keeplived/keepalived.conf
bash
global_defs { #notification_email { # 15456@qq.com #} #notification_email_from Alexandre.Cassen@firewall.loc #smtp_server 192.168.200.1 #smtp_connect_timeout 30 router_id LVS_DEVEL } # 必定要有的空格 vrrp_script chk_http_port {# 必定是写在vrrp_instance前面 script "/usr/local/src/check_nginx.sh" interval 2 # 检测脚本执行的间隔2秒 weight 2 } # 必定要有的空格 vrrp_instance VI_1 { state MASTER # 备份服务器上将 MASTER 改成 BACKUP interface eth0 # 网卡 virtual_router_id 51 # 主、备机的virtual_router_id必须相同 priority 100 # 主、备机取不一样的优先级,主机值较大,备份机值较小 advert_int 1 authentication { auth_type PASS auth_pass 1234 } virtual_ipaddress { 192.168.96.138 # VRRP H虚拟地址 } track_script { # 追踪trace_script要定在virtual_ipaddress的后面 chk_http_port } }
启动keepalived服务服务器
service keepalived start
查看是否生效 oop
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:18:9f:0b brd ff:ff:ff:ff:ff:ff
inet 192.168.15.253/24 brd 192.168.15.255 scope global eth0
inet 192.168.15.252/32 scope global eth0
inet6 fe80::a00:27ff:fe18:9f0b/64 scope link
valid_lft forever preferred_lft foreverspa
若是keepalived服务启动后出现主备机都有虚ip的状况,请查看网卡是否开启混杂模式code
ip link set eth1 promisc on
参考文档:https://www.cnblogs.com/kevingrace/p/6138185.htmlrouter