LVS四层负载均衡企业级实践攻略,一文搞定!

应用开发2025-11-05 14:03:065972

  随着时代发展,负载LVS在中小企业作为单独Web集群负载均衡用的均衡级实践攻已经极少了,更多被更简单的企业Nginx替代。

  在运维工作中,略文LVS更多的搞定是放在Nginx7层负载前面做4层负载,目的负载是支持大并发,另外,均衡级实践攻TCP负载依然有用武之地,企业例如MySQL集群负载、略文K8S集群负载,搞定因此LVS是负载运维人员一个重要技术栈内容。

  01LVS介绍

  LVS是均衡级实践攻Linux Virtual Server的简写,意即Linux虚拟服务器,企业是略文一个虚拟的服务器集群系统,可以在Unix/Linux平台下实现负载均衡集群功能。搞定

  该项目是中国国内最早出现的自由软件项目之一。

  IPVS发展史

  LVS的具体实现是IPVS内核模块,因此,可简单将LVS和IPVS作为一个东西称呼。云服务器提供商早在Linux2.2内核时,IPVS就已经以内核补丁的形式出现了。

  从2.4.23版本开始,IPVS软件就是合并到Linux内核的常用版本的内核补丁的集合。从2.4.24以后IPVS已经成为Linux官方标准内核的一部分。

  IPVS工作层次

  从上图我们看出,LVS负载均衡调度技术是在Linux内核中实现的,因此,被称之为Linux虚拟服务器(Linux Virtual Server)。

  使用该软件配置LVS时候,不能直接配置内核中的ipvs,而需要使用ipvs的管理工具ipvsadm进行管理,当然还可通过Keepalived软件直接管理ipvs,ipvs的基础配置工具是ipvsadm。

  LVS技术点小结

  真正实现调度的工具是IPVS,工作在Linux内核层面。LVS自带的IPVS命令行管理工具是ipvsadm。亿华云

  Keepalived可更好实现管理IPVS(配置文件)及负载均衡器高可用。

  Red hat工具Piranha WEB管理实现调度的工具IPVS。

  02LVS的4种工作模式原理

  LVS工具术语命名约定

  LVS四种负载工作模式名称

  LVS负载均衡器实支持下面四种负载工作模式:

  网络地址转换模式,即NAT模式(Network Address Translation)

  IP隧道模式,即TUN模式(IP Tunneling)

  直接路由模式,即DR模式(Direct Routing)

  完全网络地址转换模式,即FULLNAT模式(FULL Network Address Translation)

  NAT模式原理

  简单说就是生活中收费站,大多数商业化IP负载均衡调度器产品都是使用NAT方法,如F5、Netscaler。

  NAT模式是通过网络地址转换,由LB重写请求报文目标地址,根据预设调度算法,将请求分派给后端真实服务器;服务器响应并处理,报文返回时必须要通过调度器,经过调度器时报文的源地址被重写,再返回给客户完成整个负载调度过程。

  NAT模式原理图如下:

  在这里需要指出:根据缺省的TCP/IP协议栈处理,请求报文的目标地址为VIP,响应报文的源地址肯定也为VIP,所以响应报文不需要作任何修改。

  可以直接返回给客户,客户认为得到正常的服务,网站模板而不会知道究竟是哪一台服务器处理的,所以LVS才叫虚拟服务器。

  TUN模式原理

  NAT模式原理图如下:

  DR模式原理

  DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器将响应后的处理结果直接返回给客户端用户。

  同TUN技术,DR技术可极大地提高集群系统伸缩性。但是这种DR模式没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器LB与真实服务器RS都有一块网卡连在同一物理网段上,即必须在同一个局域网环境。

  NAT模式原理图如下:

  FNAT模式原理

  FULLNAT模式是后期淘宝网开源的模式,LVS应用主要采用DR和NAT模式,但这2种模式要求RealServer和LVS在同一个vlan中,导致部署成本过高。

  TUNNEL模式虽然可以跨vlan,但RealServer上需要部署ipip隧道模块等,网络拓扑上需要连通外网,较复杂,不易运维。

  为了解决上述问题,FULLNAT诞生。

  该模式和NAT模式区别是:数据包进入时,除了做DNAT,还做SNAT(用户ip->内网ip),数据包出时,除了做SNAT,还做DNAT(内网ip–>用户ip)从而实现LVS-RealServer间可以跨vlan通讯,RealServer只需要连接到内网。

  和NAT比,正常转发性能下降<10%,但是LB可以多台同时负载均衡工作;

  FNAT模式原理图如下:

  03LVS不同模式优缺点

  04LVS调度算法

  LVS的调度算法决定了如何在集群节点之间分布工作负荷。

  当Director调度器收到来自客户端计算机访问它的VIP上的集群服务的入站请求时,Director调度器必须决定哪个集群节点应该处理请求。

  Director调度器可用于做出该决定的调度方法分成两个基本类别:

  固定调度算法:rr,wrr,dh,sh

  动态调度算法:wlc,lc,lblc,lblcr,SED,NQ

  常用算法为rr,wrr,wlc,10种调度算法见如下:

  05LVS负载均衡安装

yum install ipvsadm -y rpm -qa ipvsadm #ipvsadm-1.27-8.el7.x86_64 modprobe ip_vs #把ipvs加入到内核 lsmod|grep ip_vs #检查内核是否有ip_vs uname -r #3.10.0-1160.31.1.el7.x86_64 ln -s /usr/src/kernels/3.10.0-1160.31.1.el7.x86_64 /usr/src/linux #yum install kernel-devel -y ls -l /usr/src/ #lrwxrwxrwx 1 root root 44 8月 1 18:04 linux -> /usr/src/kernels/3.10.0-1160.31.1.el7.x86_6 特别注意: 1)ln命令链接路径要和uname -r输出结果内核版本对应。 2)如果没有/usr/src/kernels/xx路径,可通过yum install kernel-devel -y安装。

  06实现MySQL负载均衡

  1、配置LVS虚拟IP(VIP)

ifconfig eth1:18 172.16.1.18/24 up #==>简便写法 #route add -host 172.16.1.18 dev eth1 #==添加主机路由,也可不加此行。 ③配置后的检查结果: ifconfig eth1:0 C:\Users\oldboy>ping 172.16.1.18 正在 Ping 172.16.1.18 具有 32 字节的数据: 来自 172.16.1.18 的回复: 字节=32 时间<1ms TTL=64 #提示:到这里说明VIP地址已经配好,并可以使用了。

  2、手工执行配置添加LVS服务并增加两台RS ipvsadm

ipvsadm -C #<== -C clear the whole table ipvsadm --set 30 5 60 #<== --set tcp tcpfin udp set connection timeout values ipvsadm -A -t 172.16.1.18:3306 -s wrr #--add-service -A add virtual service with options #ipvsadm -A -t 172.16.1.18:3306 -s wrr -p 20 ipvsadm -a -t 172.16.1.18:3306 -r 172.16.1.51:3306 -g -w 1 #dr模式 ipvsadm -a -t 172.16.1.18:3306 -r 172.16.1.7:3306 -g -w 1 # ipvsadm -a|e -t|u|f service-address -r server-address [options] [root@lb4-01 ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.16.1.18:3306 wrr -> 172.16.1.7:3306 Route 1 0 0 -> 172.16.1.51:3306 Route 1 0 0 [root@lb4-01 ~]# ipvsadm -Ln --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP 172.16.1.18:3306 0 0 0 0 0 -> 172.16.1.7:3306 0 0 0 0 0 -> 172.16.1.51:3306 0 0 0 0 0

  【删除方法】

#ipvsadm -D -t 172.16.1.18:3306 -s wrr #ipvsadm -D -t 172.16.1.18:3306 #ipvsadm -d -t 172.16.1.18:3306 -r 172.16.1.18:3306 <==正确 #ipvsadm -d -t 172.16.1.18:3306 -r 172.16.1.18:3306 -g -w 1 <==不好用

  【相关参数说明】

[root@oldboy ~]# ipvsadm -help # --clear -C clear the whole table # --add-service -A add virtual service with options # --tcp-service -t service-address service-address is host[:port] # --scheduler -s scheduler one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, # --add-server -a add real server with options # --real-server -r server-address server-addres s is host (and port) # --masquerading -m masquerading (NAT) # --gatewaying -g gatewaying (direct routing) (default) # --delete-server -d delete real server # --persistent -p [timeout] persistent service(会话保持功能) # --set tcp tcpfin udp set connection timeout values # --weight -w weight capacity of real server # --ipip -i ipip encapsulation (tunneling) #提示:更多参数请ipvsadm -help自行查看 #⑤命令执行过程及检查配置的执行结果 ipvsadm -C ipvsadm --set 30 5 60 ipvsadm -A -t 172.16.1.18:3306 -s wrr -p 20 ipvsadm -a -t 172.16.1.18:3306 -r 172.16.1.51:3306 -g -w 1 ipvsadm -a -t 172.16.1.18:3306 -r 172.16.1.7:3306 -g -w 1 ipvsadm -L -n --sort ipvsadm -d -t 172.16.1.18:3306 -r 172.16.1.51:80 #==>删除测试 ipvsadm -L -n --sort ipvsadm -a -t 172.16.1.18:3306 -r 172.16.1.51:80 ipvsadm -L -n --sort #此时,可以打开浏览器访问http://172.16.1.18体验结果,如果没意外,是无法访问的。

  3、手工在RS端绑定lo网卡及抑制ARP

⑥每台real server端执行 命令: ifconfig lo:18 172.16.1.18/32 up #route add -host 172.16.1.18 dev lo #工作中写到配置文件见后文 #centos7 ip addr add 172.16.1.18/32 dev lo label lo:50 #route add -host 172.16.1.18 dev lo 每个集群节点上的环回接口(lo)设备上被绑定VIP地址(其广播地址是其本身,子网掩码是255.255.255.255,采取可变长掩码方式把网段划分成只含一个主机地址的目的是避免ip地址冲突)允许LVS-DR集群中的集群节点接受发向该VIP地址的数据包,这会有一个非常严重的问题发生,集群内部的真实服务器将尝试回复来自正在请求VIP客户端的ARP广播,这样所有的真实服务器都将声称自己拥有该VIP地址,这时客户端将有可能直接发送请求数据包到某台真实服务器上,从而破坏了DR集群的负载均衡策略。因此,必须要抑制所有真实服务器响应目标地址为VIP的ARP广播,而把客户端ARP广播响应交给负载均衡器。

  4、手工在RS端抑制ARP响应

⑦抑制ARP响应方法如下: echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 以RS1为例演示执行过程如下: ifconfig lo:18 172.16.1.18 netmask 255.255.255.255 up #route add -host 172.16.1.18 dev lo cat /proc/sys/net/ipv4/conf/lo/arp_ignore cat /proc/sys/net/ipv4/conf/all/arp_ignore cat /proc/sys/net/ipv4/conf/all/arp_announce cat /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce #测试最终LVS对数据库负载是否成功: #采用web02测试: # phpmyadmin # mysql 测试成功 windows:navicat...需要vmware 映射 实际教学使用mysql客户端测试,在web02上 yum install mariadb -y mysql -ublog -poldboy123 -h172.16.1.18 #18是VIP,用户密码为前面课程提前设置。 ####停掉了51,发现连不了 lvs没有健康检查功能,51停掉了,仍然请求发给51,需要手工清理51 [root@lb4-01 ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.16.1.18:3306 wrr persistent 20 -> 172.16.1.7:3306 Route 1 0 0 -> 172.16.1.51:3306 Route 1 0 4 [root@lb4-01 ~]# ipvsadm -d -t 172.16.1.18:3306 -r 172.16.1.51:3306 [root@lb4-01 ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.16.1.18:3306 wrr persistent 20 -> 172.16.1.7:3306 Route 1 0 0 重连成功,LVS的健康检查要靠keepalved配合实现,后文讲

  5、抑制ARP脚本实现

开发脚本配置LVS RS真实服务器端 #!/bin/bash # Written by oldboy (31333741@qq.com) # QQ:31333741 # description: Config realserver lo and apply noarp VIP=( 172.16.1.18 ) . /etc/rc.d/init.d/functions case "1" in start) for ((i=0; i<`echo{#VIP[*]}`; i++)) do interface="lo:`echo {VIP[i]}|awk -F . {print 4}`" /sbin/ifconfiginterface {VIP[i]} broadcast {VIP[i]} netmask 255.255.255.255 up done echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce action "Start LVS of RearServer.by old1boy" ;; stop) for ((i=0; i<`echo {#VIP[*]}`; i++)) do interface="lo:`echo{VIP[i]}|awk -F . {print4}`" /sbin/ifconfig interface{VIP[i]} broadcast{VIP[i]} netmask 255.255.255.255 down done echo "close LVS Directorserver" if [{#VIP[*]} -eq 1];then echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce fi action "Close LVS of RearServer.by old2boy" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac #工作中可以将lo网卡绑定写到配置文件: cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-lo:18 [root@db01 network-scripts]# cat ifcfg-lo:18 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" NAME="lo:18" DEVICE="lo:18" ONBOOT="yes" IPADDR="172.16.1.18" PREFIX="32

  6、arp抑制技术参数说明

arp_ignore- INTEGER 定义对目标地址为本地IP的ARP询问不同的应答模式 0 -(默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求。 1 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求。 2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内。 3 -不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应。 4-7 -保留未使用。 8 -不回应所有(本地地址)的arp查询。 arp_announce - INTEGER 对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口 0 -(默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址 1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一。如果该来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理. 2 -对查询目标使用最适当的本地地址,在此模式下将忽略这个IP数据包的源地址并尝试选择能与该地址通信的本地地址,首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.限制了使用本地的vip地址作为优先的网络接口

  07实现MySQL高可用

  1、实现LVS+keepalived db高可用

lb4-01配置: [root@lb4-01 keepalived]# cat keepalived.conf global_defs { router_id lb01 } vrrp_instance VI_2 { state MASTER interface eth1 virtual_router_id 52 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.1.18/24 dev eth1 label eth1:18 } } #port 3306 ##oldboy service virtual_server virtual_server 172.16.1.18 3306 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 20 protocol TCP real_server 172.16.1.7 3306 { weight 1 TCP_CHECK { connect_timeout 5 #nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 172.16.1.51 3306 { weight 1 TCP_CHECK { connect_timeout 5 # nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } } lb4-02配置: [root@lb4-02 keepalived]# cat keepalived.conf global_defs { router_id lb4-02 } vrrp_instance VI_2 { state BACKUP interface eth1 virtual_router_id 52 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.1.18/24 dev eth1 label eth1:18 } } #port 3306 ##oldboy service virtual_server virtual_server 172.16.1.18 3306 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 20 protocol TCP real_server 172.16.1.7 3306 { weight 1 TCP_CHECK { connect_timeout 5 #nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 172.16.1.51 3306 { weight 1 TCP_CHECK { connect_timeout 5 # nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }

  重启keep完成

  08Web4层负载及后端7层反代+节点

  | L4+L7+WEB大规模web负载均衡

  L4:

  10.0.0.15 172.16.1.15 LVS调度器(Director) 对外提供服务的VIP为10.0.0.17

  10.0.0.16 172.16.1.16 LVS调度器(Director) 对外提供服务的VIP为10.0.0.17

  L7:

  10.0.0.5 172.16.1.5 nginx lb01 测好了。

  10.0.0.6 172.16.1.6 nginx lb02

  10.0.0.7 172.16.1.7 RS1(真实服务器) web01

  10.0.0.8 172.16.1.8 RS2(真实服务器) web02

  1、测试节点可用性

[root@lb4-02 keepalived]# curl -H"host:www.etiantian.org" 172.16.1.7 web01 [root@lb4-02 keepalived]# curl -H"host:www.etiantian.org" 172.16.1.8 web02,老男孩Linux77最优班级 remote_addr: 172.16.1.16

  2、配置keepalived lb4-01

[root@lb4-01 keepalived]# cat keepalived.conf global_defs { router_id lb01 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 53 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.17/24 dev eth0 label eth0:17 } } #web ##oldboy service virtual_server virtual_server 10.0.0.17 80 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 20 protocol TCP real_server 10.0.0.5 80 { weight 1 TCP_CHECK { connect_timeout 5 #nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 10.0.0.6 80 { weight 1 TCP_CHECK { connect_timeout 5 # nb_get_retry 3 delay_before_retry 3 connect_port 80 } } } ;=============================================== vrrp_instance VI_2 { state MASTER interface eth1 virtual_router_id 52 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.1.18/24 dev eth1 label eth1:18 } } #port 3306 ##oldboy service virtual_server virtual_server 172.16.1.18 3306 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 20 protocol TCP real_server 172.16.1.7 3306 { weight 1 TCP_CHECK { connect_timeout 5 #nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 172.16.1.51 3306 { weight 1 TCP_CHECK { connect_timeout 5 # nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }

  3、配置keepalived lb4-02

[root@lb4-02 keepalived]# cat keepalived.conf global_defs { router_id lb4-02 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 53 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.17/24 dev eth0 label eth0:17 } } #web ##oldboy service virtual_server virtual_server 10.0.0.17 80 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 20 protocol TCP real_server 10.0.0.5 80 { weight 1 TCP_CHECK { connect_timeout 5 #nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 10.0.0.6 80 { weight 1 TCP_CHECK { connect_timeout 5 # nb_get_retry 3 delay_before_retry 3 connect_port 80 } } } vrrp_instance VI_2 { state BACKUP interface eth1 virtual_router_id 52 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.1.18/24 dev eth1 label eth1:18 } } #port 3306 ##oldboy service virtual_server virtual_server 172.16.1.18 3306 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 20 protocol TCP real_server 172.16.1.7 3306 { weight 1 TCP_CHECK { connect_timeout 5 #nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 172.16.1.51 3306 { weight 1 TCP_CHECK { connect_timeout 5 # nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }

  4、web节点分别(web01,web02)配置VIP绑定,及抑制ARP(脚本实现)

[root@lb01 conf.d]# mkdir /server/scripts -p [root@lb01 conf.d]# cd /server/scripts/ [root@lb01 scripts]# vim ipvs.sh #!/bin/bash # Written by oldboy (31333741@qq.com) # QQ:31333741 # description: Config realserver lo and apply noarp VIP=( 10.0.0.17 ) . /etc/rc.d/init.d/functions case "1" in start) for ((i=0; i<`echo{#VIP[*]}`; i++)) do interface="lo:`echo {VIP[i]}|awk -F . {print 4}`" /sbin/ifconfiginterface {VIP[i]} broadcast {VIP[i]} netmask 255.255.255.255 up done echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce action "Start LVS of RearServer.by old1boy" ;; stop) for ((i=0; i<`echo {#VIP[*]}`; i++)) do interface="lo:`echo{VIP[i]}|awk -F . {print4}`" /sbin/ifconfig interface{VIP[i]} broadcast{VIP[i]} netmask 255.255.255.255 down done echo "close LVS Directorserver" if [{#VIP[*]} -eq 1];then echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce fi action "Close LVS of RearServer.by old2boy" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac [root@lb01 scripts]# sh ipvs.sh Usage: ipvs.sh {start|stop} [root@lb01 scripts]# sh ipvs.sh start Start LVS of RearServer.by old1boy [ 确定 ] ifconfig查看

  09获取lvs+nginx+web前端用户IP

本文地址:http://www.bzve.cn/news/12d1799970.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

ASUS电脑开机教程(详细图文解说,为你全面解答ASUS电脑开机问题)

也谈基于NodeJS的全栈式开发

如何做一个对账系统

JavaScript 的 Async/Await 完胜 Promise 的六个理由

全面升级的新款iPad2017(性能卓越,功能升级,打造更高效的移动办公环境)

当DDD遇上微服务

神经网络基础:七种网络单元,四种层连接方式

用R收集和映射推特数据的初学者向导

友情链接

滇ICP备2023006006号-39