lvs负载均衡

Lvs

一.Lvs简介

LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。在Linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。

官方站点是:http://www.linuxvirtualserver.org

二. 体系结构

lvs负载均衡
使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层(Loader
Balancer),中间的服务器群组层,用Server Array表示,最底层的数据共享存储层,用Shared Storage表示。在用户看来所有的应用都是透明的,用户只是在使用一个虚拟服务器提供的高性能服务。

Load Balancer层:位于整个集群系统的最前端,有一台或者多台负载调度器(Director
Server)组成,LVS模块就安装在Director Server上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(Real Server)上。同时,在Director Server上还要安装对Real Server服务的监控模块Ldirectord,此模块用于监测各个Real Server服务的健康状况。在Real Server不可用时把它从LVS路由表中剔除,恢复时重新加入。

Server Array层:由一组实际运行应用服务的机器组成,Real Server可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接。在实际的应用中,Director Server也可以同时兼任Real Server的角色。

Shared Storage层:是为所有Real Server提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成,为了提供内容的一致性,一般可以通过NFS网络文件系统共享数据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如Red hat的GFS文件系统,oracle提供的OCFS2文件系统等。

从整个LVS结构可以看出,Director Server是整个LVS的核心,目前,用于Director
Server的操作系统只能是Linux和FreeBSD,linux2.6内核不用任何设置就可以支持LVS功能,而FreeBSD作为 Director Server的应用还不是很多,性能也不是很好。对于Real Server,几乎可以是所有的系统平台,Linux、windows、Solaris、AIX、BSD系列都能很好的支持。

三. Lvs管理工具

1. ipvs

ipvs:内核中的协议栈上实现
ipvs是LVS软件核心,是允许在LB(负载均衡层)上,这是个基于ip层的负载均衡
ipvs的总体结构主要有ip包处理,负载均衡算法,系统配置和管理三个模块以及虚拟服务器与真实服务器链表组成。
ipvs管理集群服务管理服务上的RS(real server)。
一个ipvs主机可以同时定义多个cluster server,但可能会影响调度性格。
一个ipvs服务至少应该有一个RS。

2. ipvsadm

ipvsadm:用户空间的命令行工具,用于管理集群服务器

参数 用法 -A 添加一个集群服务 -E 修改已添加的集群服务 -D 删除虚拟服务 -C 清空整个表 -R 从标准输入重载 -S 保存值到标准输出 -a 向指定的client server中添加real server -e 修改RS -d 删除真实服务 -L/-l 列出表 -t 服务器地址是host[:port],tcp协议 -u 服务器地址是host[:port],udp协议 -r 服务器地址主机和端口,只支持端口映射的LVS类型才允许此处使用和集群服务中的不同端口 -g dr(direct routing)(default)模式 -i tun模式 -m nat模式 -w 实际服务器容器,指定权重 -n 数字格式显示ip和port,注意-n只能写在-L之后

Ipvsadm核心功能
集群服务管理:增、删、改
集群服务的RS管理:增、删、改
查看

语法:
ipvsadm -A -t ip:port -s rr
ipvsadm -a -t ip:port -r ip:port -g/m/i
Ipvsadm -Ln

保存:
建议保存在/etc/sysconfig/ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm
ipvsadm -Sn > /etc/sysconfig/ipvsadm

重载
ipvsadm -R < /etc/sysconfig/ipvsadm
systemctl restart ipvsadm

四.lvs工作模式及原理

1.NAT模式

通过网络地址转换实现的虚拟服务器
大并发访问时,调度器的性能成为瓶颈

NAT模式原理:
这个是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

lvs负载均衡
注意事项:

在NAT模式中,Real Server的网关必须指向LVS,否则报文无法送达客户端

特点:

  • 1、NAT 技术将请求的报文和响应的报文都需要通过 LB 进行地址改写,因此网站访问量比较大的时候 LB 负载均衡调度器有比较大的瓶颈,一般要求最多只能 10-20 台节点
  • 2、只需要在 LB 上配置一个公网 IP 地址就可以了。
  • 3、每台内部的 realserver 服务器的网关地址必须是调度器 LB 的内网地址。
  • 4、NAT 模式支持对 IP 地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

NAT模式的优缺点:

  • 优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址
  • 缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

2. DR模式

直接使用路由技术实现虚拟服务器
节点服务器需要配置VIP,注意MAC地址广播

DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

lvs负载均衡
特点
  • 1.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
  • 2.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS
  • 3.RS发现请求报文中的目的MAC是自己,就会将此报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端。

注意事项:
需要设置lo接口的VIP不能响应本地网络内的arp请求,这个IP就直接设置为32位的网络位即可。

3.TUN模式(隧道模式)

通过隧道方式实现虚拟服务

LVS/TUN的工作流程图如下所示,它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器

lvs负载均衡

*
1. 客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
*
1. 负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。
*
1. RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。

优缺点:

  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
  • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

五. LVS调度算法

  • 静态调度算法(4种):
  • 1.轮询调度rr
    均等的对待每一台服务器,不管服务器上的实际连接数和系统负载
    1. 加权论调wrr
      调度器可以自动问询真实服务器的负载情况,并动态调整权值
    2. 源地址散列调度算法 sh
      与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。
    3. 目标地址散列调度算法 dh
      该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器。
  • 动态调度算法(6种)
    1. 最少链接 lc动态地将网络请求调度到已建立的连接数最少的服务器上如果集群真实的服务器具有相近的系统性能,采用该算法可以较好的实现负载均衡
    2. 加权最少链接 wlc调度器可以自动问询真实服务器的负载情况,并动态调整权值带权重的谁不干活就给谁分配,机器配置好的权重高
    3. 基于局部性的最少连接调度算法 lblc这个算法是请求数据包的目标 IP 地址的一种调度算法,该算法先根据请求的目标 IP 地址寻找最近的该目标 IP 地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器
    4. 复杂的基于局部性最少的连接算法 lblcr记录的不是要给目标 IP 与一台服务器之间的连接记录,它会维护一个目标 IP 到一组服务器之间的映射关系,防止单点服务器负载过高。
    5. 最少期望延迟 sed不考虑非活动链接,谁的权重大,优先选择权重大的服务器来接收请求,但权重大的机器会比较忙
    6. 永不排队 nq无需队列,如果有realserver的连接数为0就直接分配过去

六、配置lvs-nat模式的httpd负载集群—http

环境说明:

主机名称 网卡信息(ens160为nat、ens192为仅主机) 安装应用 系统 Client客户端 192.168.29.138(ens33) 无 RHEL8 DR DIP:192.168.29.137(ens33)—VIP:192.168.149.140(ens37) ipvsadm RHEL8 RS1 RIP:192.168.29.142(ens33)—gw:192.168.29.150 httpd RHEL8 RS2 RIP:192.168.29.143(ens33)—gw:192.168.29.150 httpd RHEL8

1.DR、RS1、RS2三台主机都关闭防火墙和selinux和配置ip信息

[root@DR ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendo>
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@DR ~]# getenforce
Disabled

[root@RS1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@RS1 ~]# systemctl restart NetworkManager
[root@RS1 ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[root@RS1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendo>
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@RS1 ~]# getenforce
Disabled
[root@RS1 ~]#

[root@RS2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@RS2 ~]# systemctl restart NetworkManager
[root@RS2 ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[root@RS2 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendo>
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@RS2 ~]# getenforce
Disabled
[root@RS2 ~]#

2.后端RS1和RS2部署web服务器

[root@RS1 ~]# mount /dev/cdrom /mnt/
mount: /mnt: /dev/sr0 already mounted on /mnt.

[root@RS1 ~]# yum -y install httpd
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 3:07:50 ago on Wed Sep 28 02:21:27 2022.

Package httpd-2.4.37-30.module_el8.3.0+462+ba287492.0.1.x86_64 is already installed.

Dependencies resolved.

Nothing to do.

Complete!

[root@RS1 ~]# echo RS1 > /var/www/html/index.html
[root@RS1 ~]# cd /var/www/html/
[root@RS1 html]# ls
index.html
[root@RS1 html]# cat index.html
RS1
[root@RS1 html]# systemctl restart httpd
[root@RS1 html]# systemctl enable httpd
[root@RS1 html]#

[root@RS2 ~]# mount /dev/cdrom /mnt/
mount: /mnt: /dev/sr0 already mounted on /mnt.

[root@RS2 ~]# yum -y install httpd
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 1 day, 4:01:09 ago on Tue Sep 27 01:29:28 2022.

Package httpd-2.4.37-30.module_el8.3.0+462+ba287492.0.1.x86_64 is already installed.

Dependencies resolved.

Nothing to do.

Complete!

[root@RS2 ~]# echo RS2 > /var/www/html/index.html
[root@RS2 ~]# cd /var/www/html/
[root@RS2 html]# ls
index.html
[root@RS html]# cat index.html
RS2
[root@RS2 html]# systemctl restart httpd
[root@RS2 html]# systemctl enable httpd
[root@RS2 html]#

DR添加网卡

[root@DR network-scripts]# ls
 ifcfg-ens33  ifcfg-ens37
[root@DR network-scripts]# nmcli connection modify ens37 ipv4.addresses 192.168.149.140/24 ipv4.method manual connection.autoconnect yes
[root@DR network-scripts]# nmcli connection up ens37
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
NAME                UUID                                  TYPE      DEVICE
ens33               9bfb173e-cee4-46a2-ac04-38c42b5574b3  ethernet  ens33
ens37               5bb03271-6d2b-4ee3-b656-e721045eca20  ethernet  ens37
Wired connection 1  d823eadf-7078-3b8f-b0f2-31707d95f9dc  ethernet  --

3.配置DR
(1)开启IP转发功能

[root@DR ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@DR ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@DR ~]#

(2)安装ipvsadm并添加规则

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

[root@DR ~]# ipvsadm -A -t 192.168.149.140:80 -s rr
[root@DR ~]# ipvsadm -a -t 192.168.149.140:80 -r 192.168.29.137:80 -m
[root@DR ~]# ipvsadm -a -t 192.168.149.140:80 -r 192.168.29.137:80 -m
[root@DR ~]# 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.149.140:80 rr
  -> 192.168.29.137:80           Masq    1      0          0
  -> 192.168.29.137:80           Masq    1      0          0
[root@DR ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@DR ~]# systemctl restart ipvsadm
[root@DR ~]# systemctl enable ipvsadm

[root@client ~]# curl http://192.168.149.140
RS2
[root@client ~]# curl http://192.168.149.140
RS1
[root@client ~]# curl http://192.168.149.140
RS2
[root@client ~]# curl http://192.168.149.140
RS1

2.搭建lvs-dr模式的http负载均衡

主机名 主机作用 ip/dip vip DR lvs服务器 192.168.29.137 lo:192.168.29.200 RS1 Apache服务器1 192.168.29.142 lo:192.168.29.200 RS2 Apache服务器2 192.168.29.143 lo:192.168.29.200 client 客户端 192.168.29.138 客户端不需要vip

关闭防火墙和selinux


[root@DR ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@DR ~]# setenforce 0
[root@DR ~]# systemctl disable --now firewalld

#配置lo网卡ip
[root@DR ~]# dnf -y install net-tools
[root@DR ~]# ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up
[root@DR ~]# ip a |grep lo1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 192.168.29.200/0 brd 192.168.29.200 scope global lo

#永久生效lo网卡配置
[root@DR ~]# echo "ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@DR ~]# chmod +x /etc/rc.d/rc.local

[root@RS1 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@RS1 ~]# setenforce 0
[root@RS1 ~]# systemctl disable --now firewalld

#RS1上配置内核参数
[root@RS1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2
[root@RS1 ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2

#配置VIP
[root@RS1 ~]# dnf -y install net-tools
[root@RS1 ~]# ifconfig lo
192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up

#永久生效lo网卡配置
[root@RS1 ~]# echo "ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@RS1 ~]# chmod +x /etc/rc.d/rc.local

#添加路由
[root@RS1 ~]# route add -host 192.168.29.200/32 dev lo

#安装httpd服务,然后配置好网站首页
[root@RS1 ~]# dnf -y install httpd
[root@RS1 ~]# echo "RS1" > /var/www/html/index.html
[root@RS1 ~]# systemctl enable --now httpd

RS2配置

[root@RS2 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@RS2 ~]# setenforce 0
[root@RS2 ~]# systemctl disable --now firewalld

#RS2上配置内核参数
[root@RS2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS2 ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

#配置VIP
[root@RS2 ~]# dnf -y install net-tools
[root@RS2 ~]# ifconfig lo 192.168.29.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up

#永久生效lo网卡配置
[root@RS2 ~]# echo "ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@RS2 ~]# chmod +x /etc/rc.d/rc.local

#添加路由
[root@RS2 ~]# route add -host 192.168.29.200/32 dev lo

#安装httpd服务,然后配置好网站首页
[root@RS2 ~]# dnf -y install httpd
[root@RS2 ~]# echo "RS2" > /var/www/html/index.html
[root@RS2 ~]# systemctl enable --now httpd

添加并保存规则

[root@RS2 ~]# ipvsadm -A -t 192.168.29.200:80 -s rr
[root@RS2 ~]# ipvsadm -a -t 192.168.29.200:80 -r 192.168.29.142:80 -g
[root@RS2 ~]# ipvsadm -a -t 192.168.29.200:80 -r 192.168.29.143:80 -g
[root@RS2 ~]# 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.29.200:80 rr
  -> 192.168.29.142:80           Route   1      0          0
  -> 192.168.291.143:80           Route   1      0          0
[root@RS2 ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@RS2 ~]# systemctl restart ipvsadm
[root@RS2 ~]# systemctl enable ipvsadm

客户端进行测试

[root@client ~]# curl 192.168.29.200
RS1
[root@client ~]# curl 192.168.29.200
RS2
[root@client ~]# curl 192.168.29.200
RS1
[root@client ~]# curl 192.168.29.200
RS2

3.搭建lvs-dr模式的http负载集群

主机名 主机作用 ip/dip vip DR lvs服务器 192.168.29.137 lo:192.168.29.200 RS1 Apache服务器1 192.168.29.142 lo:192.168.29.200 RS2 Apache服务器2 192.168.29.143 lo:192.168.29.200 client 客户端 192.168.29.138 客户端不需要vip

关闭防火墙和selinux

[root@DR ~]# dnf -y install net-tools
[root@DR ~]# ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up
[root@DR ~]# ip a |grep lo
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 192.168.29.200/0 brd 192.168.29.200 scope global lo

#永久生效lo网卡配置
[root@DR ~]# echo "ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@DR ~]# chmod +x /etc/rc.d/rc.local

`bash

[root@RS1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS1 ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

配置VIP

[root@RS1 ~]# dnf -y install net-tools
[root@RS1 ~]# ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up

永久生效lo网卡配置

[root@RS1 ~]# echo “ifconfig lo 192.168.29.200/32 broadcast 192.168.29.200 netmask 255.255.255.255 up” >> /etc/rc.d/rc.local
[root@RS1 ~]# chmod +x /etc/rc.d/rc.local

添加路由

[root@RS1 ~]# route add -host 192.168.29.200/32 dev lo

安装httpd服务,然后配置好网站首页

[root@RS1 ~]# dnf -y install httpd mod_ssl
[root@RS1 ~]# vim /etc/httpd/conf.modules.d/00-base.conf
LoadModule ssl_module modules/mod_ssl.so
[root@RS1 ~]# mkdir /etc/httpd/ssl
[root@RS1 ~]# cd /etc/httpd/ssl
[root@RS1 ssl]# openssl genrsa -out httpd.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
……..+++++
…………………………………………+++++
e is 65537 (0x010001)
[root@RS1 ssl]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.

Original: https://www.cnblogs.com/marymary/p/16740025.html
Author: 溜溜威
Title: lvs负载均衡

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581496/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux 系统IO响应缓慢系统hang住

    应急处理:reboot 解决方法: sysctl -w vm.dirty_ratio=10 sysctl -w vm.dirty_background_ratio=5 sysctl…

    Linux 2023年6月13日
    089
  • [LINUX] 在 Win10 上搭建好用的终端开发环境:windows terminal + git bash + zsh + oh-my-zsh

    1、安装 git for windows 2、安装终端 2.1 Windows Terminal 2.1.1 安装 Windows Terminal 2.1.2 设置 Window…

    Linux 2023年6月8日
    091
  • ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用

    本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用 (ASP.NET Core 系列目录)。 系统环境为CentOS 8 。 一、概…

    Linux 2023年6月7日
    0101
  • Android recovery支持adb shell

    Android recovery支持adb shell 近期开发过程注意到recovery不支持adb shell。为了便于调试方便,决定添加此功能。 刚開始我们採用的是user版…

    Linux 2023年5月28日
    092
  • Netty源码解读(三)-NioEventLoop

    先看看EventLoop类图 我们在Netty第二篇文章中的代码中,看到有多次用到eventLoop.execute()方法,这个方法就是EventLoop开启线程执行任务的关键,…

    Linux 2023年6月7日
    088
  • layui实现多图上传,支持拖拽上传

    示例:支持多图上传,支持拖拽上传,下方有文件上传信息提示 html代码: <div class="layui-upload"> <div cl…

    Linux 2023年6月7日
    081
  • 【EventOS Nano】EventOS Nano初步了解

    EventOS Nano是什么? EventOS Nano是一个面向单片机、事件驱动的、分布式的、可跨平台开发的嵌入式开发平台。主要有两大技术特色: 事件驱动和 超轻量 Event…

    Linux 2023年6月13日
    079
  • [Git专题] 环境搭建

    环境搭建 在正式使用 Git 之前,首先应当安装 Git 并完成一些基础配置,本章内容就教大家在 Ubuntu 和 CentOS 上安装 Git 的方法。 如果你使用的是基于 De…

    Linux 2023年6月14日
    068
  • 手撕spring核心源码,彻底搞懂spring流程

    引子 十几年前,刚工作不久的程序员还能过着很轻松的日子。记得那时候公司里有些开发和测试的女孩子,经常有问题解决不了的,不管什么领域的问题找到我,我都能帮她们解决。但是那时候我没有主…

    Linux 2023年6月14日
    0108
  • 我最鄙视的程序员

    今天在技术群里看到关于优秀程序员特质的话题,让我想起多年前的一个同事,一个我最鄙视的程序员。 他的名字叫李伟(化名),是入职没多久的员工,我所在的开发二组和他在的一组,以前没有过工…

    Linux 2023年6月6日
    081
  • 初识前后端

    初识前后端 在学习了解前后端的过程中,自己看到了这一篇好的文章,摘下了一些当下用的的内容,供复习参考。 什么是前端开发? 前端开发主要涉及网站和 App,用户能够从 App 屏幕或…

    Linux 2023年6月13日
    0110
  • redis的GEO实战 (RedisTemplate)

    geoadd 时间复杂度为O(log(N)) geoadd cityGeo 116.405285 39.904989 “北京”geoadd cityGeo …

    Linux 2023年5月28日
    090
  • redis的三种集群方式

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/heqiyoujing/p/14494037.htmlA…

    Linux 2023年5月28日
    090
  • Linux使用SNAT实现局域网上网

    1、一台能上网的Linux机器 2、操作步骤 host-10-11 配置snat,开启路由转发 iptables -t nat -A POSTROUTING -s 10.10.10…

    Linux 2023年6月6日
    081
  • 标签泄露 Label leaking

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    084
  • GIT合并部分文件的CLI

    | 0.24分钟 | 399.2字符 | 1、引言&背景 2、解决方案 3、声明与参考资料 | SCscHero | 2022/5/2 PM10:16 | 系列 | 已完成…

    Linux 2023年6月13日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球