LVS/DR模式

准备工作(集群中所有主机关闭防火墙 selinux)

[root@lvs ~]# cat /etc/hosts
192.168.13.111 lvs
192.168.13.112 real-server1
192.168.13.115 real-server2

Director分发器配置(lvs这台机器)

配置vip

[root@lvs ~]# yum -y install ipvsadm 	#RHEL确保LoadBalancer仓库可用
[root@lvs ~]# ip a add dev ens33 192.168.13.100/32
[root@lvs ~]# service ipvsadm start		#启动
注意:启动如果报错: /bin/bash: /etc/sysconfig/ipvsadm: 没有那个文件或目录
需要手动生成文件
[root@lvs ~]# ipvsadm -S /etc/sysconfig/ipvsadm

定义LVS分发策略

-A:添加VIP
-t:用的是tcp协议
-a:添加的是lo的vip地址
-r:转发到realserverip
-s:算法
-L|-l –list #显示内核虚拟服务器表
--numeric, -n:#以数字形式输出地址和端口号
-g --gatewaying #指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-m  nat模式
-S -save #保存虚拟服务器规则到标准输出,输出为-R 选项可读的格式
rr:轮循
如果添加ip错了,删除命令如下:
# ip addr del dev ens33 192.168.13.100 
[root@lvs ~]# ipvsadm -C 	#清除内核虚拟服务器表中的所有记录
[root@lvs ~]# ipvsadm -A -t 192.168.13.100:80 -s rr
###分发到两台机器
[root@lvs ~]# ipvsadm -a -t 192.168.13.100:80 -r 192.168.13.112:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.13.100:80 -r 192.168.13.115:80 -g
###保存分发策略
[root@lvs ~]# ipvsadm -S /etc/sysconfig/ipvsadm
[root@lvs ~]# 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.13.100:80 rr
  -> 192.168.13.112:80            Route   1      0          0         
  -> 192.168.13.115:80            Route   1      0          0 
###显示统计信息
[root@lvs ~]# ipvsadm  -ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.13.100:80                  36     3488        0   190186        0
  -> 192.168.13.112:80                  18     3398        0   182647        0
  -> 192.168.13.115:80                  18       90        0     7539        0

1. Conns    (connections scheduled)  已经转发过的连接数
2. InPkts   (incoming packets)       入包个数
3. OutPkts  (outgoing packets)       出包个数
4. InBytes  (incoming bytes)         入流量(字节)  
5. OutBytes (outgoing bytes)         出流量(字节)

#看速率
[root@lvs ~]# ipvsadm -ln --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  192.168.13.100:80                   0        0        0        0        0
  -> 192.168.13.112:80                   0        0        0        0        0
  -> 192.168.13.115:80                   0        0        0        0        0

1. CPS      (current connection rate)   每秒连接数
2. InPPS    (current in packet rate)    每秒的入包个数
3. OutPPS   (current out packet rate)   每秒的出包个数
4. InBPS    (current in byte rate)      每秒入流量(字节)
5. OutBPS   (current out byte rate)      每秒出流量(字节)

所有RS配置

配置好网站服务器,测试所有RS

###real-server1机器
[root@real-server1 ~]# yum -y install nginx
[root@real-server1 ~]# vim /usr/share/nginx/html/index.html
111111111
###real-server2机器
[root@real-server2 ~]# yum -y install nginx
[root@real-server2 ~]# vim /usr/share/nginx/html/index.html
22222222

配置完成之后访问本机 看是否能正常访问 访问成功之后进行配置

在两台real-server机器进行以下配置

[root@real-server1 ~]# ip a add dev ens33 192.168.13.100/32
[root@real-server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@real-server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@real-server1 ~]# systemctl restart nginx

nginx关闭长连接

[root@real-server1 ~]# vim /etc/nginx/nginx.conf
    keepalive_timeout   0;

测试访问

image-20240923214116437 image-20240923214143099

成功!!

LVS/NAT模式

准备工作(集群中所有主机关闭防火墙 selinux)

在分发器中添加一个桥接网卡

主机名ip系统用途
lvs桥接
192.168.13.111 仅主机
centos7.9分发器
real-server1192.168.13.112 仅主机centos7.9web1
real-server2192.168.13.115 仅主机centos7.9web2

lvs机器安装ipvsadm工具

[root@lvs ~]# yum -y install ipvsadm

将两台后端web服务器准备好并测试正常访问

real-server机器配置

###两台后端服务器都配置
[root@real-server1 ~]# ip r add default via 192.168.13.111		# 配置默认路由(real—server的网关设置成director的DIP即可,real-server就能找到director了)

lvs机器配置

# 配置lvs-server  开启路由转发
[root@lvs ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs ~]# sysctl -p			//使添加的参数生效
(以下的ip是添加的桥接网卡的ip)
[root@lvs ~]# ipvsadm -A -t 10.8.165.229 :80 -s rr
设置后端服务器:
[root@lvs ~]# ipvsadm -a -t 10.8.165.229 :80 -r 192.168.13.112:80 -m
[root@lvs ~]# ipvsadm -a -t 10.8.165.229 :80 -r 192.168.72.115:80 -m
保存规则
[root@lvs ~]# ipvsadm -S > /etc/sysconfig/ipvsadm

访问测试

[root@lvs ~]# elinks -dump http://10.8.165.229