lvs负载均衡

lvs负载均衡群集

群集

特点:由多台主机构成,都干同一件事,对外显示一个整体

企业集群分类

  • 负载均衡群集
  • 高可用群集
  • 高性能运算群集

负载均衡群集(LB)

负载均衡的作用

  • 提高应用系统的响应能力
  • 可以处理更多的访问请求,减少延迟
  • 获得高并发、高负载的整体性能

负载均衡的结构(HA)

  • 第一层,负载调度器
  • 第二层,服务器
  • 第三层,共享存储 

高可用群集(HPC)

提高应用系统的可靠性、尽可能减少中断的时间,确保服务的连续性,达到高可用的容错效果

高性能运算群集

通过云计算或分布计算获取高性能的CPU、内存等资源,来提高整体运算能力

modprobe ip_vs #加载模块
cat /proc/net/ip_vs #查看模块版本
 

lvs三种工作模式

  1. nat模式,地址转换
  2. IP隧道,IP Tunnel,简称TUN模式
  3. 直连路由,简称DR模式

DR数据流向

1、客户通过VIP将访问请求发送到调度器(源IP为客户端IP,目的IP为VIP)发送到调度器

2、调度器通过调度算法选择分发请求的节点服务器,并重新封装数据报文(将源mac改为调度器的MAC地址,目的MAC地址改为节点服务器的MAC地址)再通过交换机转发给节点服务器

3、节点服务器收到请求报文后,确认目的MAC和目的IP无误后解包并送达到应用层进行处理

4、节点服务器要返回响应报文前,会先重新封装报文(源IP为VIP,目的IP为客户端IP),再将响应报文通过10接口传送给物理网卡然后直接发送给客户端

lvs的负载调度算法

轮询

加权轮询

最少连接

加权最少连接

lvs的调度和管理ipvsadm

ipvsadm
-A 添加虚拟服务器
-D 删除整个虚拟服务器
-s 指定负载调度算法
-d 删除某一个节点
-t 指定VIP地址TCP端口
-r 指定RIP地址TCP端口
-m 表示使用nat群集模式
-g 使用DR模式
-i 使用TUN模式
-w 设置权重
-p 保持长连接60秒
-l 列表查看lvs虚拟服务器,默认查看所有
-n 以数字形式显示地址,端口等,

LVS-NAT模式配置过程

nfs 106
web 102 101
调度器 104106
关闭防火墙
[root@localhost ~]# yum -y install rpcbind nfs-utils
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir test1 test2
[root@localhost opt]# echo 'this is test1 web page!' >test1/test.html
[root@localhost opt]# echo 'this is test2 web page!' >test2/test.html
[root@localhost opt]# vim /etc/exports
/opt/test1 192.168.65.0/24 (rw,sync,no_root_squash)
/opt/test2 192.168.65.0/24 (rw,sync,no_root_squash)[root@localhost opt]# systemctl start rpcbind.service
[root@localhost opt]# systemctl start nfs
[root@localhost opt]# showmount -e
Export list for localhost.localdomain:
/opt/test2 (everyone)
/opt/test1 (everyone)101
[root@www ~]#yum -y install httpd
[root@www ~]#vim /etc/httpd/conf/httpd.conf
ServerName www.test.com:80#修改主机名
KeepAlive off #关闭长连接,在最后一行加入
[root@www ~]#mount 192.168.65.106:/opt/test1 /var/www/html
[root@www ~]#df -Th
文件系统                  类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   xfs        38G  5.6G   32G   15% /
devtmpfs                  devtmpfs  1.6G     0  1.6G    0% /dev
tmpfs                     tmpfs     1.6G     0  1.6G    0% /dev/shm
tmpfs                     tmpfs     1.6G  9.1M  1.6G    1% /run
tmpfs                     tmpfs     1.6G     0  1.6G    0% /sys/fs/cgroup
/dev/sda1                 xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home   xfs        19G   33M   19G    1% /home
tmpfs                     tmpfs     326M   12K  326M    1% /run/user/42
tmpfs                     tmpfs     326M     0  326M    0% /run/user/0
192.168.65.106:/opt/test1 nfs4       38G  3.8G   34G   10% /var/www/html
[root@www ~]#systemctl start httpd.servicex25 (CCITT X.25)
[root@www ~]#netstat -lnpt | grep 80
tcp6       0      0 :::80                   :::*                 LISTEN      4796/httpd102
[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#vim nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[root@localhost ~]#yum -y install nginx
[root@localhost yum.repos.d]#cd /usr/share/nginx/html
[root@localhost html]#ls
50x.html  index.html
[root@localhost html]#mv * /opt
[root@localhost html]#cd /opt
[root@localhost opt]#ls
50x.html              index.html                   rh[root@localhost opt]#mount 192.168.65.106:/opt/test2 /usr/share/nginx/html
[root@localhost opt]#df -hT
文件系统                  类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   xfs        38G  4.3G   34G   12% /
devtmpfs                  devtmpfs  1.5G     0  1.5G    0% /dev
tmpfs                     tmpfs     1.5G     0  1.5G    0% /dev/shm
tmpfs                     tmpfs     1.5G  9.1M  1.5G    1% /run
tmpfs                     tmpfs     1.5G     0  1.5G    0% /sys/fs/cgroup
/dev/mapper/centos-home   xfs        19G   33M   19G    1% /home
/dev/sda1                 xfs      1014M  179M  836M   18% /boot
tmpfs                     tmpfs     302M   12K  302M    1% /run/user/42
tmpfs                     tmpfs     302M     0  302M    0% /run/user/0
192.168.65.106:/opt/test2 nfs4       38G  3.8G   34G   10% /usr/share/nginx/html
[root@localhost opt]#cd /usr/share/nginx/html
[root@localhost html]#mv /opt/*.html .
[root@localhost html]#ls
50x.html  index.html  test.html
[root@localhost html]#systemctl start nginx
104 
[root@localhost yum.repos.d]# yum -y install ipvsadm #安装ipvsadm 管理工具
添加一块网卡重启
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.65.104  netmask 255.255.255.0  broadcast 192.168.65.255inet6 fe80::1468:e3ee:f1c7:7128  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:73:1c:5f  txqueuelen 1000  (Ethernet)RX packets 488  bytes 72686 (70.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 168  bytes 27262 (26.6 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 fe80::e67a:e7f3:fe88:4de2  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:73:1c:69  txqueuelen 1000  (Ethernet)RX packets 4  bytes 240 (240.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 25  bytes 4326 (4.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 68  bytes 5916 (5.7 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 68  bytes 5916 (5.7 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:d2:63:f3  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.10
NETMASK=255.255.255.0[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=28634140-2cd6-48f1-bf8b-2116025cbcf9
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.65.104
NETMASK=255.255.255.0
#GATEWAY=192.168.65.2
#DNS1=8.8.8.8[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.65.104  netmask 255.255.255.0  broadcast 192.168.65.255inet6 fe80::1468:e3ee:f1c7:7128  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:73:1c:5f  txqueuelen 1000  (Ethernet)RX packets 1268  bytes 144292 (140.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 576  bytes 70962 (69.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 12.0.0.10  netmask 255.255.255.0  broadcast 12.0.0.255inet6 fe80::9c0:22b4:e61a:27eb  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:73:1c:69  txqueuelen 1000  (Ethernet)RX packets 108  bytes 13944 (13.6 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 89  bytes 13546 (13.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 1修改101和102 网关
[root@www ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.65.104
[root@www ~]#systemctl restart network回到104
[root@localhost network-scripts]# iptables -F
[root@localhost network-scripts]# iptables -F -t nat
[root@localhost network-scripts]# iptables -t nat -A POSTROUTING -s 192.168.65.0/24 -o ens36 -j SNAT --to 12.0.0.10
[root@localhost network-scripts]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destinationChain INPUT (policy ACCEPT)
target     prot opt source               destinationChain OUTPUT (policy ACCEPT)
target     prot opt source               destinationChain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.65.0/24      0.0.0.0/0            to:12.0.0.10[root@localhost network-scripts]# modprobe ip_vs
[root@localhost network-scripts]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost network-scripts]# for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
ip_vs_dh
ip_vs_ftp
ip_vs
ip_vs_lblc
ip_vs_lblcr
ip_vs_lc
ip_vs_nq
ip_vs_pe_sip
ip_vs_rr
ip_vs_sed
ip_vs_sh
ip_vs_wlc
ip_vs_wrr
[root@localhost network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost network-scripts]# systemctl start ipvsadm.service
[root@localhost network-scripts]# ipvsadm -C  #清楚原有策略
[root@localhost network-scripts]# ipvsadm -A -t 12.0.0.10:80 -s rr
[root@localhost network-scripts]# ipvsadm -ln #查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  12.0.0.10:80 rr
[root@localhost network-scripts]# ipvsadm -a -t 12.0.0.10:80 -r 192.168.80.101:80 -m
[root@localhost network-scripts]# ipvsadm -a -t 12.0.0.10:80 -r 192.168.80.102:80 -m
[root@localhost network-scripts]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr-> 192.168.80.101:http          Masq    1      0          0-> 192.168.80.102:http          Masq    1      0          0在一台IP为12.0.0.12的客户机使用浏览器访问 http://12.0.0.1/test.html  不断刷新浏览器测试负载均衡效果

LVS-DR模式配置过程

web服务器
192.168.65.104
192.168.65.105
nfs服务器
192.168.65.102
调度器
192.168.65.106
VIP地址192.168.65.128部署共享服务器
[root@localhost ~]# yum -y install rpcbind nfs-utils
[root@localhost ~]# mkdir /var/www/html
[root@localhost ~]#cd /var/www/html
[root@localhost html]#mkdir web1 web2
[root@localhost html]# echo 'this is web1' >web1/test.html
[root@localhost html]# echo 'this is web2' >web2/test.html
[root@localhost opt]# vim /etc/exports
/opt/test1 192.168.65.0/24 (rw,sync,no_root_squash)
/opt/test2 192.168.65.0/24 (rw,sync,no_root_squash)[root@localhost opt]# systemctl start rpcbind.service
[root@localhost opt]# systemctl start nfs
[root@localhost ~]#showmount -e
Export list for localhost.localdomain:
/var/www/html/web2 192.168.65.0/24
/var/www/html/web1 192.168.65.0/24web服务器
104
[root@localhost ~]#yum -y install nginx   #用自己的nginx.repo安装
[root@localhost ~]# cd /usr/share/nginx/html/
[root@localhost html]# mv * /opt
[root@localhost html]# vim /etc/fstab
192.168.65.102:/var/www/html/web1 /usr/share/nginx/html nfs defaults,_netdev 0 0
[root@localhost html]# cd /opt
[root@localhost opt]# mv *.html /usr/share/nginx/html/
[root@localhost opt]# mount -a
[root@localhost opt]# cd /usr/share/nginx/html/
[root@localhost html]# ls
50x.html  index.html  test.html
[root@localhost html]# cat test.html
<h1> this is web1</h1>
[root@localhost html]# systemctl start nginx105
[root@localhost ~]#yum -y install nginx   #用自己的nginx.repo安装
[root@localhost ~]# cd /usr/share/nginx/html/
[root@localhost html]# mv * /opt
[root@localhost html]# vim /etc/fstab
192.168.65.102:/var/www/html/web2 /usr/share/nginx/html nfs defaults,_netdev 0 0
[root@localhost html]# cd /opt
[root@localhost opt]# mv *.html /usr/share/nginx/html/
[root@localhost opt]# mount -a
[root@localhost opt]# cd /usr/share/nginx/html/
[root@localhost html]# ls
50x.html  index.html  test.html
[root@localhost html]# cat test.html
<h1> this is web2</h1>
[root@localhost html]# systemctl start nginx两个web服务器同样操作
[root@localhost html]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=28634140-2cd6-48f1-bf8b-2116025cbcf9
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.65.104
NETMASK=255.255.255.0
#GATEWAY=192.168.65.106
#DNS1=8.8.8.8[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# 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
[root@localhost network-scripts]# ls
ifcfg-ens33  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo     ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown       ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep  ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth   ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib    ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp  ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6  ifdown-tunnel    ifup-isdn     ifup-TeamPort
[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.65.128  #VIP地址,随便设
NETMASK=255.255.255.255	#固定的[root@localhost network-scripts]# ifup lo:0
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet 192.168.65.128/32 brd 192.168.65.128 scope global lo:0valid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:38:f8:2e brd ff:ff:ff:ff:ff:ffinet 192.168.65.105/24 brd 192.168.65.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::fbdd:bf23:9285:4611/64 scope linkvalid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000link/ether 52:54:00:46:82:bb brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000link/ether 52:54:00:46:82:bb brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]# route add -host 192.168.65.128 dev lo:0
#永久添加路由
#vim /etc/rc.d/rc.local
#route add -host 192.168.65.128 dev lo:0
#chmod +x /etc/rc.d/rc.local
[root@localhost network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.65.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.65.128  0.0.0.0         255.255.255.255 UH    0      0        0 lo
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0调度器 106
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33:0
[root@localhost network-scripts]# ifup ens33:0
[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.65.106  netmask 255.255.255.0  broadcast 192.168.65.255inet6 fe80::6e6:5516:e3a5:1df5  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:f6:41:44  txqueuelen 1000  (Ethernet)RX packets 969  bytes 123656 (120.7 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 614  bytes 94990 (92.7 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.65.128  netmask 255.255.255.255  broadcast 192.168.65.128ether 00:0c:29:f6:41:44  txqueuelen 1000  (Ethernet)lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 560  bytes 48664 (47.5 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 560  bytes 48664 (47.5 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:62:7b:1b  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]#
[root@localhost network-scripts]# yum install -y ipvsadm正在安装    : ipvsadm-1.27-8.el7.x86_64                                                    1/1验证中      : ipvsadm-1.27-8.el7.x86_64                                                    1/1已安装:ipvsadm.x86_64 0:1.27-8.el7完毕!
[root@localhost network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost network-scripts]# systemctl start ipvsadm
[root@localhost network-scripts]# modprobe ip_vs
[root@localhost network-scripts]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost network-scripts]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@localhost network-scripts]# ipvsadm -C
[root@localhost network-scripts]# ipvsadm -A -t 192.168.65.128:80 -s rr
[root@localhost network-scripts]# ipvsadm -a -t 192.168.65.128:80 -r 192.168.65.104:80 -g
[root@localhost network-scripts]# ipvsadm -a -t 192.168.65.128:80 -r 192.168.65.105:80 -g
[root@localhost network-scripts]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr-> 192.168.65.104:http          Route   1      0          0-> 192.168.65.105:http          Route   1      0          0在浏览器输入网址http://192.168.65.128/test.html 可以查看网页,不断刷新查看负载均衡效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bifrost 中间件 X-Requested-With 系统身份认证绕过漏洞复现

0x01 产品简介 Bifrost是一款面向生产环境的 MySQL,MariaDB,kafka 同步到Redis,MongoDB,ClickHouse等服务的异构中间件 0x02 漏洞概述 Bifrost 中间件 X-Requested-With 存在身份认证绕过漏洞,未经身份认证的攻击者可未授权创建管理员权限账号,可通过删除请求头实现身…

动态加载库

no_mangle 不要改标识符 首先是认识这个标注&#xff1a;mangle&#xff0c;英文的含义“撕裂、碾压”。我第一次把这个单次误以为是manage&#xff0c;说实话两个单词还挺像的。 RUS中函数或静态变量使用#[no_mangle]这个标注属性后&#xff0c;编译器就不会修改它们的名字了…

Home Assistant 如何开启SSH服务

环境&#xff1a; Home Assistant 11.2 SSH & Web Terminal 17.0 问题描述&#xff1a; Home Assistant 如何开启SSH服务 解决方案&#xff1a; 通过添加一个名为Terminal & SSH的插件来在 Home Assistant 中启用 SSH 服务 下面是启用 SSH 服务的大致步骤&#x…

C++第一讲之初入C++

注&#xff1a;本文是对于学完C语言再学C同学的讲解&#xff0c;主要补充C与C语言不同之处&#xff0c;如果你没学过C语言&#xff0c;不建议观看本文。 一.C简介 我们都知道C语言是过程性语言&#xff08;强调的是实现过程&#xff09;&#xff0c;即对计算机语言要处理的两…

计算机组成原理(存储器的校验)

存储器的校验 说到存储器的校验就是海明码&#xff08;汉明码&#xff09;&#xff0c;这种题型有两种&#xff1a; 1.编码问题&#xff1a;根据要传送的二进制代码来确定其对应的海明码&#xff08;汉明码&#xff09; 2.检错问题&#xff1a;已知收到的汉明码&#xff0c;…

【Linux】Linux运维基础

Linux简介&#xff1a; Linux是一个开源的操作系统内核&#xff0c;最初由Linus Torvalds创建。它通常与GNU工具一起使用&#xff0c;以创建一个完整的操作系统。Linux操作系统有许多基于内核的发行版&#xff0c;如Ubuntu、CentOS、Debian等&#xff0c;每个发行版都有其独特的…

深度学习中常见的激活函数

前文介绍 我们在前面了解到了线性回归模型&#xff0c;其实我们可以把线性回归看成一个单个的神经元&#xff0c;它实际上就完成了两个步骤 1.对输入的特征的加权求和 2.将结果通过传递函数&#xff08;或者激活函数&#xff09;输出 这里我们提到了传递函数&#xff08;或者…

HarmonyOS4.0从零开始的开发教程18后台代理提醒

HarmonyOS&#xff08;十六&#xff09;后台代理提醒 简介 随着生活节奏的加快&#xff0c;我们有时会忘记一些重要的事情或日子&#xff0c;所以提醒功能必不可少。应用可能需要在指定的时刻&#xff0c;向用户发送一些业务提醒通知。例如购物类应用&#xff0c;希望在指定时…

PDF天花板工具 你值得拥有

今天带来的推送是PDF文档阅读器的鼻祖——Adobe 的 Arcobat。 Adobe Acrobat 是由Adobe公司开发的一款PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;编辑软件。借助它&#xff0c;您可以以PDF格式制作和保存你的文档 &#xff0c;以便于浏览…

MATLAB 点云中心化 (40)

MATLAB 点云中心化 一、算法介绍二、算法实现一、算法介绍 使用点云集合中的坐标计算质心,这里将其作为中心,将每个点坐标减去该中心坐标,即可得到中心化的点云,这在很多处理中是必须进行的一个步骤:相当于点云移动到以质心为原点的坐标系 (主要是计算质心和点云偏移两个…

【Maven-Helper】利用 Maven-Helper 解决依赖冲突问题

【Maven-Helper】利用 Maven-Helper 解决依赖冲突问题 1&#xff09;安装 Maven-Helper 插件2&#xff09;Maven Helper 插件使用方法3&#xff09;Idea-Maven 可视化依赖树 1&#xff09;安装 Maven-Helper 插件 这里我们已经安装过了&#xff0c;如果没有安装过&#xff0c;点…

透视表美化——将透视表个别错误值去掉/取消自动更新表宽

1.问题&#xff1a;做透视表时&#xff0c;有时候有个别值求出来是错误值&#xff0c;但是不雅观需要删掉&#xff1b; 2.解决方案 点击数据透视表分析-选项框&#xff0c;将“对于错误值&#xff0c;显示&#xff1a;”选中&#xff0c;可以不填值或者填需要替代的值&#xf…

Ubuntu20.04 下编译安装 ffmpeg 和 ffplay

Ubuntu20.04 下编译安装 ffmpeg 和 ffplay 一、下载源码包二、安装依赖库三、编译四、添加环境变量五、验证是否成功六、问题 一、下载源码包 1.1 官方下载链接&#xff1a;http://ffmpeg.org/download.html 最新版本为6.1&#xff0c;点击 Download Source Code下载即可 &…

四、Spring IoC实践和应用(基于XML配置方式组件管理)

本章概要 基于XML配置方式组件管理 实验一&#xff1a; 组件&#xff08;Bean&#xff09;信息声明配置&#xff08;IoC&#xff09;实验二&#xff1a; 组件&#xff08;Bean&#xff09;依赖注入配置&#xff08;DI&#xff09;实验三&#xff1a; IoC 容器创建和使用实验四…

自助借还办证一体机软件需求说明书

1. 简介 1.1 项目概括 本项目主要实现读者自助办证、借书、还书、查询、续借的功能&#xff0c;减轻管理员的工作量&#xff0c;提升读者的借阅体验&#xff0c;提高了图书的借阅量与流通率&#xff0c;是图书馆智能化、无人化建设的重要步骤。 1.2 项目背景 ​ 目前各大图…

WEB渗透—PHP反序列化(四)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

使用 React 实现自定义数据展示日历组件

目录 背景实现日历组件父组件数据 效果最后 背景 项目中需要实现一个日历组件&#xff0c;并且需要展示月&#xff0c;日所对应的数据&#xff08;因为项目需求问题&#xff0c;就不统计年数据总量&#xff09;。网上找了一堆&#xff0c;基本都不大符合项目需求&#xff0c;且…

OpenHarmony鸿蒙原生应用开发,ArkTS、ArkUI学习踩坑学习笔记,持续更新中。

一、AMD处理器win10系统下&#xff0c;DevEco Studio模拟器启动失败解决办法。 结论&#xff1a;在BIOS里面将Hyper-V打开&#xff0c;DevEco Studio模拟器可以成功启动。 二、ArkTS自定义组件导出、引用实现。 如果在另外的文件中引用组件&#xff0c;需要使用export关键字导…

3ds max软件中的一些常用功能分享!

3ds max软件有很多小伙伴反馈说&#xff0c;明明有很多3ds max教程资料。却不知道如何入门3dmax。 掌握3dmax基本功能是开始使用3dmax的基础之一&#xff0c;所以&#xff0c;小编带大家盘点一下3dmax常用操作。 3dmax常用功能介绍如下&#xff0c;快快跟着小编一起看起来。 1…

预测性维护在汽车制造行业中的应用

汽车制造行业是一个高度复杂和精细化的领域&#xff0c;依赖于各种设备来完成生产流程。这些设备包括机械装配线、焊接机器人、喷涂设备、传送带等。然而&#xff0c;这些设备在长时间运行中不可避免地会遇到各种故障&#xff0c;给生产进程带来延误和成本增加。为了应对这一挑…