vrrp_instance段配置
nopreempt #设置为不抢占。默认是抢占的,当高优先级的机器恢复后,会抢占低优先 \ 级的机器成为MASTER,而不抢占,则允许低优先级的机器继续成为MASTER,即使高优先级 \ 的机器已经上线。如果要使用这个功能,则初始化状态必须为BACKUP。 preempt_delay #设置抢占延迟。单位是秒,范围是0---1000,默认是0.发现低优先 \ 级的MASTER后多少秒开始抢占。vrrp_script段配置
#作用:添加一个周期性执行的脚本。脚本的退出状态码会被调用它的所有的VRRP Instance记录。 #注意:至少有一个VRRP实例调用它并且优先级不能为0.优先级范围是1-254. vrrp_script <SCRIPT_NAME> { ... } #选项说明: script "/path/to/somewhere" #指定要执行的脚本的路径。 interval <INTEGER> #指定脚本执行的间隔。单位是秒。默认为1s。 timeout <INTEGER> #指定在多少秒后,脚本被认为执行失败。 weight <-254 --- 254> #调整优先级。默认为2. rise <INTEGER> #执行成功多少次才认为是成功。 fall <INTEGER> #执行失败多少次才认为失败。 user <USERNAME> [GROUPNAME] #运行脚本的用户和组。 init_fail #假设脚本初始状态是失败状态。 #weight说明: 1. 如果脚本执行成功(退出状态码为0),weight大于0,则priority增加。 2. 如果脚本执行失败(退出状态码为非0),weight小于0,则priority减少。 3. 其他情况下,priority不变。real_server段配置
weight <INT> #给服务器指定权重。默认是1 inhibit_on_failure #当服务器健康检查失败时,将其weight设置为0, \ 而不是从Virtual Server中移除 notify_up <STRING> #当服务器健康检查成功时,执行的脚本 notify_down <STRING> #当服务器健康检查失败时,执行的脚本 uthreshold <INT> #到这台服务器的最大连接数 lthreshold <INT> #到这台服务器的最小连接数tcp_check段配置
connect_ip <IP ADDRESS> #连接的IP地址。默认是real server的ip地址 connect_port <PORT> #连接的端口。默认是real server的端口 bindto <IP ADDRESS> #发起连接的接口的地址。 bind_port <PORT> #发起连接的源端口。 connect_timeout <INT> #连接超时时间。默认是5s。 fwmark <INTEGER> #使用fwmark对所有出去的检查数据包进行标记。 warmup <INT> //指定一个随机延迟,最大为N秒。可防止网络阻塞。如果为0,则关闭该功能。 retry <INIT> #重试次数。默认是1次。 delay_before_retry <INT> #默认是1秒。在重试之前延迟多少秒。 keepalived实现nginx负载均衡的高可用环境:
#在两个机器上配置yum源及环境(这里只写出主机的,从机一样) [root@linuxmi ~]# systemctl stop firewalld [root@linuxmi ~]# systemctl disable firewalld [root@linuxmi ~]# setenforce 0 [root@linuxmi ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config [root@linuxmi ~]# curl -o /etc/yum.repos.d/CentOS7-Base-163.repo [root@linuxmi ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo [root@linuxmi ~]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo [root@linuxmi ~]# yum -y install epel-release vim wget gcc gcc-c++ #安装keepalived [root@linuxmi ~]# yum -y install keepalived #安装nginx [root@linuxmi ~]# yum -y install nginx [root@linuxmi ~]# cd /usr/share/nginx/html/ [root@linuxmi ~]# mv index.html{,.bak} [root@linuxmi ~]# echo 'slave' > index.html [root@linuxmi ~]# systemctl start nginx [root@linuxmi ~]# systemctl enable nginx修改配置文件
#主机配置文件 [root@linuxmi ~]# cat > /etc/keepalived/keepalived.conf <<EOF ! Configuration File for keepalived global_defs { router_id lb01 } vrrp_instance VI_1 { state BACKUP interface ens32 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass linuxmi123 } virtual_ipaddress { 192.168.83.250 } } virtual_server 192.168.83.250 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP real_server 192.168.83.128 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.83.132 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } EOF #从机配置文件 [root@linuxmi ~]# cat > /etc/keepalived/keepalived.conf <<EOF ! Configuration File for keepalived global_defs { router_id lb02 } vrrp_instance VI_1 { state BACKUP interface ens32 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass linuxmi123 } virtual_ipaddress { 192.168.83.250 } } virtual_server 192.168.83.250 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP real_server 192.168.83.128 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.83.132 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } EOF keepalived监控nginx负载均衡