! Configuration File for keepalived
global_defs {
router_id rtmp_audio
}
vrrp_script chk_test {
script "test.sh" #用shell命令執行test.sh(若exit 0為OK,exit 1為fail)
interval 1 #時間間隔為1秒檢測一次
weight -20 #當nginx的服務不存在了,就把當前的權重-20(也就是把priority 100-20=80,MASTER就會變SLAVE)
fall 2 #測試失敗的次數
rise 1 #測試成功的次數
}
vrrp_script chk_http { #檢測nginx服務是否在運行有很多方式,比如進程,用腳本檢測等等
script "killall -0 httpd" #用shell命令檢查httpd服務是否存在
interval 1 #時間間隔為1秒檢測一次
weight -20 #當nginx的服務不存在了,就把當前的權重-20(也就是把priority 100-20=80,MASTER就會變SLAVE)
fall 2 #測試失敗的次數
rise 1 #測試成功的次數
}
vrrp_instance VI_1 {
state MASTER #backup 改BACKUP
interface bond1 #VIP所在的網卡接口
#虛擬路由標識.這個標識是一個數字,並且同一個vrrp實例使用唯一的標識
virtual_router_id 11
#優先級.這是一個數字,數值愈大,優先級越高
priority 100 #backup 改90
nopreempt #設置為不搶佔 註:這個配置只能設置在backup主機上,而且這個主機優先級要比另外一台高
preempt_delay #搶佔延時,默認5分鐘
#同步通知間隔.MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位為秒
advert_int 1
#身份驗證.包含驗證類型和驗證密碼。類型主要有PASS、AH兩種,通常使用的類型為PASS,據說AH使用時有問題。驗證密碼為明文,同一vrrp實例MASTER與BACKUP 使用相同的密碼才能正常通信
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.152.117
#如果有多個VIP繼續換行寫
}
#track_script {
# chk_http
#}
#notify "/etc/keepalived/notify.sh"
}
# VIP的ip和端口,可設多個
virtual_server 172.16.152.117 8080 {
#檢測的間隔時間,單位為秒
delay_loop 6
#lvs調度算法
lb_algo rr
#lvs方式(TUN|DR|NAT)三種方式
lb_kind DR
#持久連接超時的時間,單位為秒
persistence_timeout 50
#使用的協議TCP/UDP
protocol TCP
real_server 172.16.152.112 8080 { #backup 改172.16.152.116
#權重,數值越大,權重越高
weight 1
notify_down "killall keepalived"
#健康檢測的方式 HTTP_CHECK |SSL_GET|HTTP_GET|
HTTP_GET {
url {
path /index.jsp
status_code 200 # Can only specify a HTTP status_code
}
# 連接超時時間
connect_timeout 3
#嘗試連接的次數
nb_get_retry 3
#3次成功retry之間的時間
delay_before_retry 3
}
}
}
留言列表