! 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 } } }