网站首页 > 技术教程 正文
准备
各种虚拟机准备克隆等
nginx-1.22.1在linux服务器上的安装和使用
keepalived+nginx实现高可用实战(双机主备,双主热备)
LVS+Nginx环境搭建(DR模式)
只需要对keepalived的配置文件进行修改即可,毕竟keepalived和lvs完美兼容
搭建lvs+keepalived+nginx跟lvs+nginx还是有点区别的,不需要在LVS服务器(DR)构建虚拟IP。keepalived会帮忙搞定。但是还是需要在在两台nginx(SR)构建虚拟IP。
主lvs
! Configuration File for keepalived
global_defs {
router_id LVS_15
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 17
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.192.17
}
}
#配置集群地址访问的IP+端口,端口和nginx保持一致,这个就是对应的LVS(DR)
virtual_server 192.168.192.17 80 {
#健康检查的时间,单位:秒
delay_loop 6
#配置负载均衡的算法:rr(轮询)
lb_algo rr
#设置lvs的模式:NAT/TUN/DR 我们用的是DR
lb_kind DR
#设置会话持久化时间
persistence_timeout 5
#协议,其实就是-t
protocol TCP
#负载均衡的真实服务器 这个就是对应两台Ngixn(RS)
real_server 192.168.192.11 80 {
#轮询默认权重为1
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
real_server 192.168.192.12 80 {
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
}
备lvs
! Configuration File for keepalived
global_defs {
router_id LVS_16
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 17
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.192.17
}
}
#配置集群地址访问的IP+端口,端口和nginx保持一致,这个就是对应的LVS(DR)
virtual_server 192.168.192.17 80 {
#健康检查的时间,单位:秒
delay_loop 6
#配置负载均衡的算法:rr(轮询)
lb_algo rr
#设置lvs的模式:NAT/TUN/DR 我们用的是DR
lb_kind DR
#设置会话持久化时间
persistence_timeout 5
#协议,其实就是-t
protocol TCP
#负载均衡的真实服务器 这个就是对应两台Ngixn(RS)
real_server 192.168.192.11 80 {
#轮询默认权重为1
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
real_server 192.168.192.12 80 {
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
}
重启测试
先把之前lvs+nginx的配置清除
ipvsadm -C
启动keepalived
systemctl start keepalived
查看效果
[root@localhost etc]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.192.17:80 rr persistent 5
-> 192.168.192.11:80 Route 1 0 0
-> 192.168.192.12:80 Route 1 0 0
双机热备
其实就是跟keepalived的双机热备差不多,只不过RS(两台Nginx)需要多加个虚拟IP,这里假设用的是192.168.192.18,则在两台nginx(11,12)进行如下操作
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo:1 ifcfg-lo:2
vi ifcfg-lo:2
输入如下内容
DEVICE=lo:2
IPADDR=192.168.192.18
NETMASK=255.255.255.255
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
进行刷新
ifup lo
依然需要添加路由
route add -host 192.168.192.18 dev lo:2
两台lvs的配置文件
lvs01
! Configuration File for keepalived
global_defs {
router_id LVS_15
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 17
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.192.17
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 18
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.192.18
}
}
#配置集群地址访问的IP+端口,端口和nginx保持一致,这个就是对应的LVS(DR)
virtual_server 192.168.192.17 80 {
#健康检查的时间,单位:秒
delay_loop 6
#配置负载均衡的算法:rr(轮询)
lb_algo rr
#设置lvs的模式:NAT/TUN/DR 我们用的是DR
lb_kind DR
#设置会话持久化时间
persistence_timeout 5
#协议,其实就是-t
protocol TCP
#负载均衡的真实服务器 这个就是对应两台Ngixn(RS)
real_server 192.168.192.11 80 {
#轮询默认权重为1
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
real_server 192.168.192.12 80 {
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
}
#配置集群地址访问的IP+端口,端口和nginx保持一致,这个就是对应的LVS(DR)
virtual_server 192.168.192.18 80 {
#健康检查的时间,单位:秒
delay_loop 6
#配置负载均衡的算法:rr(轮询)
lb_algo rr
#设置lvs的模式:NAT/TUN/DR 我们用的是DR
lb_kind DR
#设置会话持久化时间
persistence_timeout 5
#协议,其实就是-t
protocol TCP
#负载均衡的真实服务器 这个就是对应两台Ngixn(RS)
real_server 192.168.192.11 80 {
#轮询默认权重为1
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
real_server 192.168.192.12 80 {
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
}
lvs02
! Configuration File for keepalived
global_defs {
router_id LVS_16
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 17
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.192.17
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 18
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.192.18
}
}
#配置集群地址访问的IP+端口,端口和nginx保持一致,这个就是对应的LVS(DR)
virtual_server 192.168.192.17 80 {
#健康检查的时间,单位:秒
delay_loop 6
#配置负载均衡的算法:rr(轮询)
lb_algo rr
#设置lvs的模式:NAT/TUN/DR 我们用的是DR
lb_kind DR
#设置会话持久化时间
persistence_timeout 5
#协议,其实就是-t
protocol TCP
#负载均衡的真实服务器 这个就是对应两台Ngixn(RS)
real_server 192.168.192.11 80 {
#轮询默认权重为1
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
real_server 192.168.192.12 80 {
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
}
#配置集群地址访问的IP+端口,端口和nginx保持一致,这个就是对应的LVS(DR)
virtual_server 192.168.192.18 80 {
#健康检查的时间,单位:秒
delay_loop 6
#配置负载均衡的算法:rr(轮询)
lb_algo rr
#设置lvs的模式:NAT/TUN/DR 我们用的是DR
lb_kind DR
#设置会话持久化时间
persistence_timeout 5
#协议,其实就是-t
protocol TCP
#负载均衡的真实服务器 这个就是对应两台Ngixn(RS)
real_server 192.168.192.11 80 {
#轮询默认权重为1
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
real_server 192.168.192.12 80 {
weight 1
#设置健康检查
TCP_CHECK {
#检查的80端口
connect_port 80
#超时时间:秒
connect_timeout 2
#重试次数
nb_get_retry 2
#间隔时间:秒
delay_before_retry 3
}
}
}
然后重启keepalived即可
systemctl restart keepalived
查看目前的lvs配置
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.192.17:80 rr persistent 5
-> 192.168.192.11:80 Route 1 2 0
-> 192.168.192.12:80 Route 1 0 0
TCP 192.168.192.18:80 rr persistent 5
-> 192.168.192.11:80 Route 1 0 0
-> 192.168.192.12:80 Route 1 0 0
可以看到有两组了。
然后在浏览器访问VIP:http://192.168.192.17/和http://192.168.192.18/分别渠道了11和12.
完美!
猜你喜欢
- 2024-10-17 12《Nginx 入门教程》Nginx负载均衡(上)
- 2024-10-17 技术干货分享:微服务浅谈服务治理的演变过程
- 2024-10-17 全面分析:Web基础架构负载均衡LVS机制的原理
- 2024-10-17 [幕客技术]负载均衡架构采用LVS中的nat和dr模式缺陷(续篇2)
- 2024-10-17 Linux服务器集群系统——LVS集群中的IP负载均衡技术
- 2024-10-17 微服务、集群、分布式的区别是什么?
- 2024-10-17 跟我学Nginx(五)——Ngin实战(nginx nginx)
- 2024-10-17 负载均衡之软硬件负载均衡的优缺点
- 2024-10-17 安排上了!用LVS+Keepalived,实现高可用负载均衡
- 2024-10-17 LVS+Keepalived+Nginx高可用负载均衡方案
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)