Centos7 LVS+Keepalived+Nginx基于DR模式构建高可用方案
1、准备机器
| 名称 | 网卡0 | 网卡1 | VIP |
| lvsmaster | 192.218.92.185(网关:192.218.92.1) | 10.88.1.20(无网关)内网通信使用 | 192.218.92.187 |
| lvsbackup | 192.218.92.186(网关:192.218.92.1) | 10.88.1.21(无网关)内网通信使用 | 192.218.92.187 |
| lvsnginx1 | 192.218.92.180(网关:192.218.92.1) | 10.88.1.22(无网关)内网通信使用 | 192.218.92.187 |
| lvsnginx2 | 192.218.92.181(网关:192.218.92.1) | 10.88.1.23(无网关)内网通信使用 | 192.218.92.187 |
2、lvsmaster和lvsbackup安装ipvsadm
yum install ipvsadm
3、lvsmaster和lvsbackup安装Keepalived
yum install keepalived
systemctl status keepalived
systemctl start keepalived
systemctl enable keepalived 加入开机启动
4、lvsnginx1和lvsnginx2安装nginx
yum install yum-utils
vim /etc/yum.repos.d/nginx.repo
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key
yum clean all
yum install nginx
安装完后,rpm -qa | grep nginx 查看
加入开机启动:systemctl enable nginx
启动nginx:systemctl start nginx
查看nginx的状态:systemctl status nginx
重启nginx服务:systemctl restart nginx
停止nginx服务:systemctl stop nginx
5、lvsnginx1和lvsnginx2 配置网卡规则和路由
修改10.88.1.22中
cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:v1
vim /etc/sysconfig/network-scripts/ifcfg-lo:v1
DEVICE=lo:v1 IPADDR=192.218.92.187 NETMASK=255.255.255.255
配置网卡规则(抑制ARP)
继续在两台RS(Real Server)上进行配置
配置arp抑制规则
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_notify = 1 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2
刷新网卡
sysctl -p
写入开机启动
echo "route add -host 192.218.92.187 dev lo:v1" >>/etc/rc.local
修改10.88.1.23中
cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:v1
vim /etc/sysconfig/network-scripts/ifcfg-lo:v1
DEVICE=lo:v1 IPADDR=192.218.92.187 NETMASK=255.255.255.255
配置网卡规则(抑制ARP)
继续在两台RS(Real Server)上进行配置
配置arp抑制规则
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_notify = 1 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2
刷新网卡
sysctl -p
写入开机启动
echo "route add -host 192.218.92.187 dev lo:v1" >>/etc/rc.local
6、配置lvsmaster(192.218.92.185)和lvsbackup(192.218.92.186)
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
zhanghuan@youxiang.com
}
notification_email_from lvsadmin@youxiang.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_Server_1
}
vrrp_instance VI_1 {
state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备 记得大写
interface eth0 #网卡id 不同的电脑网卡id会有区别 可以使用:ip a查
virtual_router_id 101 #虚拟路由编号,主备要一致
priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
advert_int 1 #检查间隔,默认为1s
authentication { #这里配置的密码最多为8位,主备要一致,否则无法正常通讯
auth_type PASS
auth_pass E2CSLVS20
}
virtual_ipaddress {
192.218.92.187 #定义虚拟IP(VIP)为192.218.92.187,可多设,每行一个
}
}
virtual_server 192.218.92.187 80 {
delay_loop 3 # 设置健康检查时间,单位是秒
lb_algo sh # 设置负载调度的算法为wlc 加权最小连接调度(wlc) rr轮询算法 sh session lvs调度算法rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
protocol TCP
real_server 192.218.92.180 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
}
}
real_server 192.218.92.181 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
}
}
}lvsbackup只是state、priority、router_id不同
此部署方法 lb_kind 必须为 DR
8、lvsmaster、lvsbackup重启 keepalived 查看 是否配置成功
systemctl restart keepalived
ip a
扫描二维码推送至手机访问。
版权声明:本文由一二三博客发布,如需转载请注明出处。


