! Configuration File for keepalived

#####全局定义块#####
global_defs {
   ###邮件通知配置###
   # notification_email {
   #  acassen
   #}
   #notification_email_from Alexandre.Cassen@firewall.loc
   #smtp_server 192.168.200.1
   #smtp_connect_timeout 30
   
   ###lvs负载均衡器标识，在一个网络内，它的值应该是唯一的。####
   lvs_id springrain
   
    ####标识本节点,通常为hostname###
   router_id LVS_DEVEL   
   
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}


###监控服务.NGINX mysql等###
vrrp_script chk_nginx {
    script "/usr/local/nginx/sbin/check_nginx.sh"
    interval 2
    weight 2
}


####vrrp同步组####
vrrp_sync_group bl_group {  
	group {  
	  VI_1  
	}  
}
  #####vrrp实例定义块#####  
vrrp_instance VI_1 {

    ###指定A节点为主节点 备用节点设置为BACKUP ### 
	###如果master服务死掉后backup会变成master，但是当master服务又好了的时候 master此时会抢占VIP###
	###可以都设置成BACKUP,然后设置 nopreempt,通过 priority实现免争抢 ###
    state MASTER
	
	###绑定虚拟IP的网络接口 ###
    interface eth0
	
	###VRRP组名，两个节点的设置必须一样，以指明各个节点属于同一VRRP组##
    virtual_router_id 51
	
	###主节点的优先级（1-254之间），备用节点必须比主节点优先级低###
    priority 100
	
	###组播信息发送间隔，两个节点设置必须一样###
    advert_int 1
	
	###验证类型和验证密码,类型主要有PASS、AH 两种,通常使用PASS类型,据说AH使用时有问题.验证密码为明文,同一vrrp 实例MASTER与BACKUP使用相同的密码才能正常通信###
    authentication {
        auth_type PASS
        auth_pass 1111
    }
	
	###虚拟IP地址池，可以有多个IP，每个IP占一行，不需要指定子网掩码。注意：这个IP必须与我们的设定的vip保持一致。####
    virtual_ipaddress {
        10.0.70.128
    }
	
	###检测脚本###
     track_script {
        chk_nginx  
    }
	
	
}

###设置虚拟服务器，需要指定虚拟IP地址和服务端口，IP与端口之间用空格隔开###
virtual_server 10.0.70.128 3306 {

    ###设置运行情况检查时间，单位是秒###
    delay_loop 6
	
	###设置负载调度算法，这里设置为rr，即轮询算法(rr|wrr|lc|wlc|lblc|sh|dh)###
    lb_algo rr
	
	###设置LVS实现负载均衡的机制，有NAT,TUN,DR三个模式可选###
	###DR是IP转发,不支持端口转发,virtual_server和real_server的端口需要一致###
    lb_kind DR
	
	###会话保持时间，单位是秒。这个选项对动态网页是非常有用的，为集群系统中的session共享提供了一个很好的解决方案。####
    ###有了这个会话保持功能，用户的请求会被一直分发到某个服务节点，直到超过这个会话的保持时间。###
    ###需要注意的是，这个会话保持时间是最大无响应超时时间，也就是说，用户在操作动态页面时，如果50秒内没有执行任何操作，###
    ###那么接下来的操作会被分发到另外的节点，但是如果用户一直在操作动态页面，则不受50秒的时间限制###
    #persistence_timeout 50
	
	###指定转发协议类型，有TCP和UDP两种###
    protocol TCP
	
	###配置服务节点1，需要指定real server的真实IP地址和端口，IP与端口之间用空格隔开###
	###DR 模式下,realserver需要执行realserver脚本###
    real_server 10.0.70.125 3306 {
	    ###配置服务节点的权值，权值大小用数字表示，数字越大，权值越高，设置权值大小可以为不同性能的服务器###
        #分配不同的负载，可以为性能高的服务器设置较高的权值，而为性能较低的服务器设置相对较低的权值，这样才能合理地利用和分配系统资源###
        #weight 3
		
		###realserver的状态检测设置部分，单位是秒.HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK###
		TCP_CHECK {
		
		    ###表示3秒无响应超时###	
            connect_timeout 3 
          	###表示重试次数###
            nb_get_retry 3
			###表示重试间隔###
            delay_before_retry 3  
	
			###健康检查的IP###
			#bindto 10.0.70.32	
            ###健康检查的端口###				
            connect_port 3306  

        }
		
       
    }
	
	
	###配置服务节点1，需要指定real server的真实IP地址和端口，IP与端口之间用空格隔开###
	###DR 模式下,realserver需要执行realserver脚本###
    real_server 10.0.70.126 3306 {
	    ###配置服务节点的权值，权值大小用数字表示，数字越大，权值越高，设置权值大小可以为不同性能的服务器###
        #分配不同的负载，可以为性能高的服务器设置较高的权值，而为性能较低的服务器设置相对较低的权值，这样才能合理地利用和分配系统资源###
        #weight 3
		
		###realserver的状态检测设置部分，单位是秒.HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK###
		TCP_CHECK {

		    ###表示3秒无响应超时###	
            connect_timeout 3 
          	###表示重试次数###
            nb_get_retry 3
			###表示重试间隔###
            delay_before_retry 3  
	
			###健康检查的IP###
			#bindto 10.0.70.33	
            ###健康检查的端口###				
            connect_port 3306  
        }
		
       
    }
	
	
}





















