! 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的端口 } } }