linux-keepalived-配置详解 发表于 2019-07-31 | in linux . keepalived | | 访客 Keepalived提供通过请求一个VIP来达到请求真实IP地址的功能,而VIP能够在一台机器发生故障时候,自动漂移到另外一台机器上,从而达到了高可用HA功能 cat /etc/keepalived/keepalived.conf123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899! Configuration File for keepalivedglobal_defs { notification_email { # 配置提醒邮箱,可配置多个 admin1@163.com admin2@163.com } notification_email_from warning@163.com # 收件人邮箱 smtp_server 127.0.0.1 # 邮件服务器地址 smtp_connect_timeout 30 # 连接邮箱服务器超时时间 router_id LVS_DEVEL # 路由id,每组的路由id是唯一的 vrrp_skip_check_adv_addr vrrp_strict # 此项设置启动keepalived时会打开iptables,会默认DROP掉所有访问vip的数据包,需要清空着一条规则,命令:iptables -nL 查看规则, iptables -F 清空规则 vrrp_garp_interval 0 vrrp_gna_interval 0}vrrp_instance VI_1 { state MASTER # 主服务器为MASTER, 从服务器为BACKUP interface eth0 # 定义网络接口,与实际网卡关联 virtual_router_id 88 # 定义VRID号(同一组的主备必须一致) priority 100 # 定义服务器权重(0-255, 默认100), 越大权重越高 authentication { # 定义认证信息 auth_type PASS # keepalived只支持俩中认证,这里使用第二种简单密码认证,也就是预认证 auth_pass abcd1234 # 主备节点间的认证密码(最长8位) } virtual_ipaddress { # 定义VIP(虚IP), 可以配置多个 172.23.6.2 172.23.6.3 }}virtual_server 172.23.6.2 443 { # VIP及其端口号 delay_loop 2 # 检查周期2秒 lb_atgo wrr # 常用算法(rr|wrr|lc|wlc), rr: 轮询, wrr: 加权轮询, lc: 最少连接, wlc: 加权最少连接 lb_kind NAT # 模式(NAT|DR|TUN), 常用DR,NAT persistence_timeout 50 # 保持连接,开启后,客户端在一定时间内始终访问相同服务器, 测试环境可注释掉,生产环境开启 protocol TCP # 协议类型TCP,只支持TCP #sorry_server 127.0.0.1:80 用于集群挂掉了,并且该调度器为MASTER时,提示的友好界面给客户机,比如提示:服务器正在维护等等友好信息... real_server 172.23.6.200 443 { # 实际后端主机ip和端口 weight 1 # 权重值(默认为1,最小值为1),权重越大,该后端主机承受的压力越大。提示:仅仅lb_algo选择wrr|wlc时有效 SSL_GET { # 加密的https健康检查 url { path / # 检查根下的文件 digest 640205b7b0fc66c1ea91c463fac6334d # 对比码,如加密的md5 #status_code 200 # 返回状态码为200表示OK,上一行可用这个代替,具体情况看自己的需求 } url { path /mrtg/ # 检查/mrtg/下的文件 digest ab0205b7b0fc66c1ea91c463fac6334d } connect_timeout 3 # 连接超时时间,单位秒 nb_get_retry 3 # 重复连接次数 delay_before_retry 3 # 延时3秒重连一次 } } real_server 172.23.6.201 443 { ...... }}virtual_server 172.23.6.202 8000 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP sorry_server 192.168.200.200 1358 real_server 192.168.200.2 1358 { weight 1 HTTP_GET { # 普通http健康检查 url { path /testurl/test.jsp digest 640205b7b0fc66c1ea91c463fac6334d } url { path /testurl2/test.jsp digest 640205b7b0fc66c1ea91c463fac6334d } url { path /testurl3/test.jsp digest 640205b7b0fc66c1ea91c463fac6334d } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }}vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径 interval 2 ## 检测时间间隔 weight -20 ## 如果条件成立,权重-20}