! Configuration File for keepalived
global_defs { #全局定義部分
notification_email { #設置報警郵件地址,可設置多個
acassen@firewall.loc #接收通知的郵件地址
}
notification_email_from test0@163.com #設置 發送郵件通知的地址
smtp_server smtp.163.com #設置 smtp server 地址,可是ip或域名.可選端口號 (默認25)
smtp_connect_timeout 30 #設置 連接 smtp server的超時時間
router_id LVS_DEVEL #主機標識,用於郵件通知
vrrp_skip_check_adv_addr
vrrp_strict #嚴格執行VRRP協議規范,此模式不支持節點單播
vrrp_garp_interval 0
vrrp_gna_interval 0
script_user keepalived_script #指定運行腳本的用戶名和組。默認使用用戶的默認組。如未指定,默認為keepalived_script 用戶,如無此用戶,則使用root
enable_script_security #如過路徑為非root可寫,不要配置腳本為root用戶執行。
}
vrrp_script chk_nginx_service { #VRRP 腳本聲明
script "/etc/keepalived/chk_nginx.sh" #周期性執行的腳本
interval 3 #運行腳本的間隔時間,秒
weight -20 #權重,priority值減去此值要小於備服務的priority值
fall 3 #檢測幾次失敗才為失敗,整數
rise 2 #檢測幾次狀態為正常的,才確認正常,整數
user keepalived_script #執行腳本的用戶或組
}
vrrp_instance VI_1 { #vrrp 實例部分定義,VI_1自定義名稱
state MASTER #指定 keepalived 的角色,必須大寫 可選值:MASTER|BACKUP
interface ens33 #網卡設置,lvs需要綁定在網卡上,realserver綁定在回環口。區別:lvs對訪問為外,realserver為內不易暴露本機信息
virtual_router_id 51 #虛擬路由標識,是一個數字,同一個vrrp 實例使用唯一的標識,MASTER和BACKUP 的 同一個 vrrp_instance 下 這個標識必須保持一致
priority 100 #定義優先級,數字越大,優先級越高。
advert_int 1 #設定 MASTER 與 BACKUP 負載均衡之間同步檢查的時間間隔,單位為秒,兩個節點設置必須一樣
authentication { #設置驗證類型和密碼,兩個節點必須一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個
192.168.119.130
}
track_script { #腳本監控狀態
chk_nginx_service #可加權重,但會覆蓋聲明的腳本權重值。chk_nginx_service weight -20
}
notify_master "/etc/keepalived/start_haproxy.sh start" #當前節點成為master時,通知腳本執行任務
notify_backup "/etc/keepalived/start_haproxy.sh stop" #當前節點成為backup時,通知腳本執行任務
notify_fault "/etc/keepalived/start_haproxy.sh stop" #當當前節點出現故障,執行的任務;
}
virtual_server 192.168.119.130 80 { #定義RealServer對應的VIP及服務端口,IP和端口之間用空格隔開
delay_loop 6 #每隔6秒查詢realserver狀態
lb_algo rr #后端調試算法(load balancing algorithm)
lb_kind DR #LVS調度類型NAT/DR/TUN
#persistence_timeout 60 同一IP的連接60秒內被分配到同一台realserver
protocol TCP #用TCP協議檢查realserver狀態
real_server 192.168.119.120 80 {
weight 1 #權重,最大越高,lvs就越優先訪問
TCP_CHECK { #keepalived的健康檢查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
connect_timeout 10 #10秒無響應超時
retry 3 #重連次數3次
delay_before_retry 3 #重連間隔時間
connect_port 80 #健康檢查realserver的端口
}
}
real_server 192.168.119.121 80 {
weight 1 #權重,最大越高,lvs就越優先訪問
TCP_CHECK { #keepalived的健康檢查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
connect_timeout 10 #10秒無響應超時
retry 3 #重連次數3次
delay_before_retry 3 #重連間隔時間
connect_port 80 #健康檢查realserver的端口
}
}
}
vrrp_instance VI_2 { #vrrp 實例部分定義,VI_1自定義名稱
state BACKUP #指定 keepalived 的角色,必須大寫 可選值:MASTER|BACKUP 分別表示(主|備)
interface ens33 #網卡設置,綁定vip的子接口,lvs需要綁定在網卡上,realserver綁定在回環口。區別:lvs對訪問為外,realserver為內不易暴露本機信息
virtual_router_id 52 #虛擬路由標識,是一個數字,同一個vrrp 實例使用唯一的標識,MASTER和BACKUP 的 同一個 vrrp_instance 下 這個標識必須保持一致
priority 90 #定義優先級,數字越大,優先級越高。
advert_int 1 #設定 MASTER 與 BACKUP 負載均衡之間同步檢查的時間間隔,單位為秒,兩個節點設置必須一樣
authentication { #設置驗證類型和密碼,兩個節點必須一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個
192.168.119.131
}
}
virtual_server 192.168.119.131 80 { #定義RealServer對應的VIP及服務端口,IP和端口之間用空格隔開
delay_loop 6 #每隔6秒查詢realserver狀態
lb_algo rr #后端調試算法(load balancing algorithm)
lb_kind DR #LVS調度類型NAT/DR/TUN
#persistence_timeout 60 #同一IP的連接60秒內被分配到同一台realserver
protocol TCP #用TCP協議檢查realserver狀態
real_server 192.168.119.120 80 {
weight 1 #權重,最大越高,lvs就越優先訪問
TCP_CHECK { #keepalived的健康檢查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
connect_timeout 10 #10秒無響應超時
retry 3 #重連次數3次
delay_before_retry 3 #重連間隔時間
connect_port 80 #健康檢查realserver的端口
}
}
real_server 192.168.119.121 80 {
weight 1 #權重,最大越高,lvs就越優先訪問
TCP_CHECK { #keepalived的健康檢查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
connect_timeout 10 #10秒無響應超時
retry 3 #重連次數3次
delay_before_retry 3 #重連間隔時間
connect_port 80 #健康檢查realserver的端口
}
}
}