keepalived安裝與nginx的主從雙機熱備配置
阿新 • • 發佈:2018-11-27
nginx檢測指令碼
#!/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
安裝keepalived
yum -y install gcc pcre-devel zlib-devel openssl-devel keepalived
配置/etc/keeplived/keepalived.conf
global_defs { #notification_email { # [email protected] #} #notification_email_from [email protected] #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
檢視是否生效
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 forever
如果keepalived服務啟動後出現主備機都有虛ip的情況,請檢視網絡卡是否開啟混雜模式
ip link set eth1 promisc on
參考文件:https://www.cnblogs.com/kevingrace/p/6138185.html