keeplived+lvs(主从热备+负载均衡)
时间:2019-12-12
本文章向大家介绍keeplived+lvs(主从热备+负载均衡),主要包括keeplived+lvs(主从热备+负载均衡)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本次实验基于DR负载均衡模式(直接路由),设置一个VIP(Virtual IP)为192.168.1.225,用户只需要访问这个IP地址即可获得网页服务。其中,负载均衡主机为192.168.1.221(master),备机为 192.168.1.222(slave)。Web服务器A为192.168.1.223(web01),Web服务器B为192.168.1.220(web02)
配置两台web服务器
[root@web01 ~]# systemctl stop firewalld [root@web01 ~]# setenforce 0 [root@web02 ~]# service iptables stop iptables:将链设置为政策 ACCEPT:filter [确定] iptables:清除防火墙规则:[确定] iptables:正在卸载模块:[确定] [root@web02 ~]# setenforce 0
[root@web01 ~]# yum -y install httpd
[root@web02 ~]# yum -y install httpd
[root@web01 ~]# systemctl start httpd [root@web01 ~]# echo "192.168.1.223" > /var/www/html/index.html [root@web01 ~]# curl 192.168.1.223 192.168.1.223
[root@web02 ~]# service httpd start 正在启动 httpd:httpd: apr_sockaddr_info_get() failed for web02 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [确定] [root@web02 ~]# echo "192.168.1.220" > /var/www/html/index.html [root@web02 ~]# curl 192.168.1.220 192.168.1.220
将这两台web服务器都配置成lvs的real server,编辑realserver脚本文件,进入指定文件夹:cd /etc/init.d/,编辑脚本文件:vim realserver
[root@web01 ~]# cat /etc/rc.d/init.d/realserver #!/bin/bash # description: Config realserver lo and apply noarp #Written by :NetSeek http://www.linuxtone.org SNS_VIP=192.168.1.225 . /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $SNS_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
[root@web01 ~]# cd /etc/init.d/ [root@web01 init.d]# chmod 755 realserver [root@web01 init.d]# service realserver start Reloading systemd: [ 确定 ] Starting realserver (via systemctl): [ 确定 ] [root@web02 ~]# cd /etc/init.d/ [root@web02 init.d]# chmod 755 realserver [root@web02 init.d]# service realserver start RealServer Start OK
注意:配置real server是web服务器都需要配置的,有多少台就配置多少台!
配置负载服务器(master)
[root@master ~]# yum install -y keepalived [root@master ~]# cd /etc/keepalived/ [root@master keepalived]# ls keepalived.conf [root@master keepalived]# cp keepalived.conf keepalived.conf.bak [root@master keepalived]# echo "" > keepalived.conf
[root@master keepalived]# cat keepalived.conf global_defs { notification_email { 1350748936@qq.com } notification_email_from sns-lvs@gmail.com smtp_server 192.168.1.114 smtp_connection_timeout 30 router_id LVS_MASTER # 设置lvs的id,在一个网络应该是唯一的 } vrrp_instance VI_1 { state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备 interface ens33 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) virtual_router_id 66 # 虚拟路由编号,主从要一直 priority 100 # 优先级,数值越大,获取处理请求的优先级越高 advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数) authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.225 # 定义虚拟ip(VIP),可多设,每行一个 } } # 定义对外提供的LVS的VIP以及port virtual_server 192.168.1.225 8080 { delay_loop 6 # 设置健康检查时间,单位为秒 lb_algo wrr # 设置负载调度的算法为wrr lb_kind DR # 设置lvs实现负载的机制,有NAT、TUN、DR三个模式 nat_mask 255.255.255.0 persistence_timeout 0 # 同一IP 0秒内的请求都发到同个real server protocol TCP real_server 192.168.1.223 8080 { # 指定real server1的ip地址 weight 3 # 配置节点权值,数值越大权重越高 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.220 8080 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } } }
[root@master keepalived]# systemctl start keepalived
配置负载服务器(slave)
[root@slave ~]# cat /etc/keepalived/keepalived.conf global_defs { notification_email { 1350748936@qq.com } notification_email_from sns-lvs@gmail.com smtp_server 192.168.1.114 smtp_connection_timeout 30 router_id LVS_BACKUP # 设置lvs的id,在一个网络应该是唯一的 } vrrp_instance VI_1 { state BACKUP # 指定keepalived的角色,MASTER为主,BACKUP为备 interface ens33 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) virtual_router_id 66 # 虚拟路由编号,主从要一直 priority 90 # 优先级,数值越大,获取处理请求的优先级越高 advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数) authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.225 # 定义虚拟ip(VIP),可多设,每行一个 } } # 定义对外提供的LVS的VIP以及port virtual_server 192.168.1.225 8080 { delay_loop 6 # 设置健康检查时间,单位为秒 lb_algo wrr # 设置负载调度的算法为wrr lb_kind DR # 设置lvs实现负载的机制,有NAT、TUN、DR三个模式 nat_mask 255.255.255.0 persistence_timeout 0 # 同一IP 0秒内的请求都发到同个real server protocol TCP real_server 192.168.1.223 8080 { # 指定real server1的ip地址 weight 3 # 配置节点权值,数值越大权重越高 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.220 8080 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } } } [root@slave ~]# systemctl restart keepalived
原文地址:https://www.cnblogs.com/liujunjun/p/12027745.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法