centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB  注意down掉网卡的方法  nginx效率没有LVS高  ipvsadm命令集  测试LVS方法 第三十三节课

LVS核心模块就是IPVS,安装在Director上,Director就是一个路由器,他包含有完成lvs功能的路由表,通过这些路由表把用户请求分发到real server。
同时,在Director上还要安装对realserver的监控模块LDirectord(LDirectord是heartbeat里面的一个插件,还需要perl-MailTools这个rpm包),这个模块用于监测各个real server服务的健康状况, 在real server不可用时把其从lvs路由表中剔除,在恢复时再重新加入

LVS即使其中一台web服务器挂掉,LVS依然会把请求分发到挂掉的服务器,这是LVS的缺点

LVS权重最大100 最小0

用户的登录态的保持
1、服务器间用共享存储
2、用长连接,不允许会话切换web服务器,让会话保持在一台服务器

服务器:session
客户端:cookies

三种模式区别

$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 1  //-a增加一个real server  -m NAT模式 -g dr模式 -t tun模式  -w权重

NAT模式:director负责接受请求和返回请求,realserver可以是任意操作系统,dr的vip和dip只需要不同网段就可以

DR模式/TUN模式:返回请求不需要经过director,director只负责分发接受的请求,realserver只能是Unix like操作系统

DR模式和TUN模式区别:TUN模式realserver和dr通信使用隧道(修改了ip包头),DR模式不使用隧道(修改MAC地址)

三种模式都不需要公网IP,客户端,dr,realserver都在同一个内网里面都可以

如果dr用公网ip,那么realserver的rip也要用公网ip

dip:director ip

rip:real server ip

上半节课

三种模式区别
LVS/NAT 配置
LVS/DR 配置

下半节课

LVS/DR + keepalived配置
nginx ip_hash 实现长连接
LVS是四层LB
注意down掉网卡的方法
nginx效率没有LVS高
ipvsadm命令集

NAT模式(Virtual server via NAT(VS-NAT))

DR模式(Virtual Server via Direct Routing(VS-DR))

TUN模式(Virtual server via IP tunneling(VS-TUN))

常用的负载均衡开源软件有: nginx、lvs、keepalived
商业的硬件负载设备: F5、Netscale

1. LB、LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群

LVS是一个实现负载均衡集群的开源软件项目
LVS架构从逻辑上可分为调度层(Director)、server集群层(Real server)和共享存储层

LVS可分为三种工作模式: ( dr模式参考这篇文章 http://os.51cto.com/art/201105/264303.htm 这篇介绍的还是挺详细的: http://www.it165.net/admin/html/201401/2248.html )
1、NAT NAT (调度器将请求的目标ip即vip地址改为Real server的ip, 返回的数据包也经过调度器,调度器再把源地址修改为vip)
2、TUN   IP tunneling(调度器将请求来的数据包封装加密通过ip隧道转发到后端的real server上,而real server会直接把数据返回给客户端,而不再经过调度器)
3、DR  Direct Routing(调度器将请求来的数据包的目标mac地址改为real server的mac地址,返回的时候也不经过调度器,直接返回给客户端)

LVS最最常用的4种调度算法:
1、轮询调度(Round Robin)(简称rr)
2、加权轮询(Weighted Round Robin)(简称wrr)
3、最少链接(least connection)(LC)  分配给现在最少链接那台机 
4、加权最少链接(Weighted Least Connections)(WLC)
等等 (其他算法,参考 http://www.aminglinux.com/bbs/thread-7407-1-1.html)

2. LVS/NAT 配置
三台服务器一台作为director, 两台作为real server
Director 有一个ip (192.168.31.166) 和一个ip(192.168.21.166),

两个real server上只有ip(192.168.21.100)和(192.168.21.101) 并且需要把两个real server的内网网关(eth0的gateway)设置为director的内网ip(192.168.21.166)

检查一下网关是否成功设置  route -n  
两个real server 上都安装httpd: yum install -y httpd
Director上安装ipvsadm,  yum install -y ipvsadm
Direcotr 上 vim /usr/local/sbin/lvs_nat.sh //增加:

#! /bin/bash
# director 服务器上开启路由转发功能:
echo > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo > /proc/sys/net/ipv4/conf/all/send_redirects
echo > /proc/sys/net/ipv4/conf/default/send_redirects
echo > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo > /proc/sys/net/ipv4/conf/eth1/send_redirects # director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.21.0/ -j MASQUERADE
# director设置ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C //相当于iptables -F 清空规则
$IPVSADM -A -t 192.168.31.166: -s lc -p //-A增加dr -s算法 默认rr轮询 lc最少链接 -p长链接 30秒 30秒内不停发送keepalive包给realserver 30秒后断开链接
$IPVSADM -a -t 192.168.31.166: -r 192.168.21.100: -m -w //-a增加一个real server -m 使用NAT模式 -g dr模式 -t tun模式 -w权重
$IPVSADM -a -t 192.168.31.166: -r 192.168.21.101: -m -w

192.168.31.166  VIP

192.168.21.166 DIP

192.168.21.100 RIP

192.168.21.101 RIP

192.168.31.x

192.168.21.x

直接运行这个脚本就可以完成lvs/nat的配置了:
/bin/bash /usr/local/sbin/lvs_nat.sh
通过浏览器测试两台机器上的httpd内容

查看一下规则

iptables -nvL  -t nat

查看一下ipvsadm规则

ipvsadm -l
ipvsadm -ln

在客户端进行测试

Linux客户端

for i in `seq  `; do curl 192.168.31.166;sleep 1;done

Windows客户端

在浏览器输入  192.168.31.166

修改了规则需要重新执行一下

vi /usr/local/sbin/lvs_nat.sh   //修改规则
sh /usr/local/sbin/lvs_nat.sh //重新执行脚本,使生效

3. LVS/DR 配置

每个realserver返回请求不需要经过director,director只负责分发接受的请求

DR需要安装ipvsadm

RS不需要安装ipvsadm

三台机器:

director(eth0:192.168.31.166, vip eth0:0: 192.168.31.110) vip不需要配置i,只需要写在脚本里就可以
real server1(eth0 rip: 192.168. 31.100, vip lo:0: 192.168.31.110)
real server2(eth0 rip: 192.168.31.101, vip lo:0: 192.168.31.110)
Director 上 vim /usr/local/sbin/lvs_dr.sh //增加

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.31.110
rs1=192.168.31.100 
rs2=192.168.31.101
ifdown eth0:0  //先down掉eth0:0 ,不然重新执行/usr/local/sbin/lvs_dr.sh 脚本会报网卡已启动
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up //绑定vip netmask 表示无网段 注意机器上是否有eth0
route add -host $vip dev eth0:0 //加个路由
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1 //-g表示DR模式
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

两台rs上:vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=192.168.31.110
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up   //注意这里绑定的是lo 回环地址
route add -host $vip lo:0
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

关于arp_ignore和 arp_announce 参考:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

然后director上执行: bash /usr/local/sbin/lvs_dr.sh
两台rs上执行: bash /usr/local/sbin/lvs_dr_rs.sh
Windows下浏览器测试访问

测试

测试LVS 
机器1
echo "rs1rs1rs1rs1" >/usr/share/nginx/html/index.html
机器2
echo "rs2rs2rs2rs2" >/usr/share/nginx/html/index.html


下半节课

4. LVS/DR + keepalived配置

keepalived可以帮助LVS检测后端服务器的存活,将请求只转发到存活的机器

keepalived的诞生本来是为LVS而设计的,后来加入了VRRP协议

注意:前面虽然我们已经配置过一些操作,但是下面我们使用keepaliave操作和之前的操作是有些冲突的,所以若是之前配置过DR,请首先做如下操作

dr上执行:

$ipv -C   //清空规则
$ifdown eth0:

前面的lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常。所以需要有一种机制用来检测real server的状态,这就是keepalived。它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived可以实现ha集群的功能,当然了也需要一台备用director.
主备director都需要安装一下keepalived软件和ipvsadm,需要先安装epel扩展源

yum install -y keepalived
yum install -y ipvsadm

安装好后,编辑配置文件
vim /etc/keepalived/keepalived.conf //加入如下:

vrrp_instance VI_1 {
state MASTER #备用服务器上为 BACKUP
interface eth0
virtual_router_id
priority #备用服务器上为90
advert_int
authentication {
auth_type PASS #跟heartbeat一样要指定加密方式和密码
auth_pass
}
virtual_ipaddress {
192.168.31.110 #直接取192.168.31.110这个LVS的vip作为keepalived的vip而不是另取一个新的vip
}
}
virtual_server 192.168.31.110 { #直接取192.168.31.110这个LVS的vip作为keepalived的vip而不是另取一个新的vip
delay_loop #(每隔6秒查询realserver状态)
lb_algo wlc #(lvs 算法)
lb_kind DR #(Direct Route)
persistence_timeout 3 #(同一IP的连接30秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态) real_server 192.168.31.100 {
weight #(权重)
TCP_CHECK {
connect_timeout #(10秒无响应超时)
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 192.168.31.101 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

以上为主director的配置文件,从director的配置文件只需要修改

state MASTER -> state BACKUP
priority 100 -> priority 90

使用ip addr 查看vip是否已经启动

ip addr

配置完keepalived后,需要开启端口转发(主从都要做):
echo 1 > /proc/sys/net/ipv4/ip_forward
然后,两个rs上执行 /usr/local/sbin/lvs_dr_rs.sh 脚本
最后,两个director上启动keepalived服务(先主后从):
/etc/init.d/keepalived start
另外,需要注意的是,主从dr上启动keepalived服务会自动生成vip和ipvsadm规则,不需要再去执行dr里面的/usr/local/sbin/lvs_dr.sh 脚本。

由于keepalived没有单独日志,如果有问题,需要看 /var/log/message 里面的错误

两台rs上:vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=192.168.31.110
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up   //注意这里绑定的是lo 回环地址
route add -host $vip lo:0
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

sh  /usr/local/sbin/lvs_dr_rs.sh

停止rs2上的nginx,dr不会将请求发到rs2

/etc/init.d/nginx stop

Removing service [192.168.31.101]:80 from VS virtual server [192.168.31.110]:80

重新启动rs2上的nginx,dr会马上自动把请求发到rs2

/etc/init.d/nginx start

从上安装配置keepalived和ipvsadm

scp -P  /etc/keepalived/keepalived.conf   192.168.31.112:/etc/keepalived/keepalived.conf
vi /etc/keepalived/keepalived.conf
state MASTER #备用服务器上为 BACKUP
priority #备用服务器上为90
/etc/init.d/keepalived start tail /var/log/message
ipvsadm -ln
ip addr //从上是没有vip的

主从切换模式

/etc/init.d/keepalived stop

或者

iptables -I OUTPUT  -d 224.0.0.18  -j DROP

5.nginx ip_hash 实现长连接

upstream test {
ip_hash;
server 192.168.31.100;
server 192.168.31.101;
}

server {
listen 80;
server_name bbs.aaa.cn;

location / {
proxy_pass http://test/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

支持下面负载均衡算法
轮询
加权轮询
ip_hash
URL_hash

ip_hash的坏处,服务器宕机,nginx依然会把请求发到宕机那台机,除非用轮询才会转发到别的机器或者用down标记那个宕机机器
# 正常情况下是由 tomcat3 来应答的,当 tomcat3 死掉后

upstream bbs_server_pool {
       ip_hash;
       server 192.168.1.80:8080;
       server 192.168.1.80:8081;
       server 192.168.1.80:8082 down;
    }

ip_hash的两个问题
1、是否支持权重  ,不支持权重
2、保持链接多长时间 ,不支持保持链接,只是根据来源ip总是发送到某一台机

测试

测试NGINX
机器1 
echo "rs1rs1rs1rs1" >/usr/share/nginx/html/index.html 
机器2 
echo "rs2rs2rs2rs2" >/usr/share/nginx/html/index.html

扩展学习:
haproxy+keepalived http://blog.csdn.net/xrt95050/article/details/40926255
nginx、lvs、haproxy比较 http://www.csdn.net/article/2014-07-24/2820837
keepalived中自定义脚本 vrrp_script http://www.linuxidc.com/Linux/2012-08/69383.htm

http://my.oschina.net/hncscwc/blog/158746
nginx代理 http://www.apelearn.com/bbs/thread-64-1-1.html
nginx长连接 http://www.apelearn.com/bbs/thread-6545-1-1.html


LVS是四层LB

NAT模式

基于tcp/ip ,端口转发

所以端口,后边的服务都可以随便改,LVS只负责转发端口

httpd 可以改为nginx
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 1 可以改为$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:8080 -m -w 1


NAT模式

权重设置

# director设置ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.31.166:80 -s wlc
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 2
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.101:80 -m -w 10

或者

# director设置ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.31.166:80 -s wrr
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.100:80 -m -w 2
$IPVSADM -a -t 192.168.31.166:80 -r 192.168.21.101:80 -m -w 10


注意down掉网卡的方法

测试环境:centos6.6

不要用ifconfig eth0 up/down 的方法

ifconfig eth1:0 up/down 
SIOCSIFFLAGS: 无法指定被请求的地址

要用ifup/ifdown

ifup eth1:0
Determining if ip address 192.168.1.115 is already in use for device eth1...
[root@steven network-scripts]# ifconfig

另外,一个网卡多个ip,down掉一个ip并不会导致整个网卡down掉

eth1 Link encap:Ethernet HWaddr 00:0C:29:01:D5:CB
inet addr:192.168.1.106 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33032 errors:0 dropped:0 overruns:0 frame:0
TX packets:4882 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8892933 (8.4 MiB) TX bytes:421479 (411.6 KiB)

eth1:0 Link encap:Ethernet HWaddr 00:0C:29:01:D5:CB
inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

---------------------------

# ifdown eth1:0
[root@steven network-scripts]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:0C:29:01:D5:CB
inet addr:192.168.1.106 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33548 errors:0 dropped:0 overruns:0 frame:0
TX packets:4938 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8925293 (8.5 MiB) TX bytes:427603 (417.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2508 (2.4 KiB) TX bytes:2508 (2.4 KiB)


nginx效率没有LVS高

nginx: 匹配域名 匹配目录 匹配URL,工作在七层

LVS:只能转发IP包,工作在四层

各有优势


ipvsadm命令集

ipvsadm -ln
l:列出来
n:数字显示

$IPVSADM -C //相当于iptables -F 清空规则
$IPVSADM -A //-A增加dr
$IPVSADM -a //-a增加一个real server
ipvsadm -ln //查看规则


两个后端apache的动静分离、负载均衡

http://www.apelearn.com/bbs/thread-64-1-1.html

跟lnmp/lamp阶段复习差不多

针对apache和nginx共同协作的网站架构,也可以根据动态内容和静态内容的请求来做负载均衡
如:
        upstream apache.com{
            server  1.2.3.1:80;
            server  1.2.3.4:80;
        }
location   ~*   .*\.(php|phps|jsp)$ 
        {
                proxy_pass  http://apache.com;
        }


keepalived和VRRP协议
http://blog.csdn.net/xrt95050/article/details/40926255
VRRP通过竞选协议来实现虚拟路由器的功能,所有的协议报文都是通过IP多播(multicast)包(多播地址224.0.0.18)形式发送的。

xiaohuazi: VRRP协议简介 在现实的网络环境中,两台需要通信的主机大多数情况下并没有直接的物理连接。对于这样的情况,它们之间路由怎样选择?主机如何选定到达目的主机的下一跳路由,这个问题通常的解决方法有二种:
1、在主机上使用动态路由协议(RIP、OSPF等)
2、在主机上配置静态路由

VIP的飘动可以为我们解决很多问题,以前我试过使用ifup/ifdown的方式控制网卡的up/down来实现,这种方式有个小问题,就是每次VIP 飘动之后都要等上几十秒才能生效,感觉时间比较长,而且还要配合一些逻辑脚本才能很好地工作,有没有更好的方法呢?当然有,这就是本文的主角—— keepalived。


负载均衡的发展历程
http://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=403078442&idx=2&sn=bd31fddfccafde520a2fb0060e9b6522&scene=0#wechat_redirect
1996 F5成立
1998 LVS项目成立
2000 HAProxy项目成立
2004 NGINX推出公共版本
2004 F5推出TMOS平台
2007 F5开始提供应用交付(ADC)产品
负载平衡、SSL卸载、压缩优化、TCP连接优化

(一)LVS的痛点
LVS最常用的有NAT、DR以及新的FULL NAT模式。上图比较了几种常见转发模式的优缺点。

我们认为LVS的每种模式都有其优点和缺点,但最大的问题是其复杂性。相信很多朋友看到这三种方式的优缺点、还有F5的单臂模式、双臂模式都会有云里雾里的感觉。

(二)LVS集群的痛点

雪上加霜的是咱们还需要考虑LVS的性能扩展和容灾方法,这使得整个方案更加的复杂。常见的有基于Keepalived的主备方式和ECMP两种。
Keepalived主备模式设备利用率低;不能横向扩展;VRRP协议,有脑裂的风险。而ECMP的方式需要了解动态路由协议,LVS和交换机均需要较复杂配置;交换机的HASH算法一般比较简单,增加删除节点会造成HASH重分布,可能导致当前TCP连接全部中断;部分交换机的ECMP在处理分片包时会有BUG。

基于DR转发方式
LVS支持四种转发模式:NAT、DR、TUNNEL和FULLNAT(FULLNAT最近新加入的模式 还为合并到内核主线),其实各有利弊。Vortex在设计之初就对四种模式做了评估,最后发现在虚拟化的环境下DR方式在各方面比较平衡,并且符合我们追求极致性能的理念。
DR方式最大的优点是绝佳的性能,只有request需要负载均衡器处理,response可以直接从后端服务器返回客户机,不论是吞吐还是延时都是最好的分发方式。
其次,DR方式不像NAT模式需要复杂的路由设置,而且不像NAT模式当client和后端服务器处于同一个子网就无法正常工作。DR的这个特性使他特别合适作为内网负载均衡。
此外,不像FULLNAT一样需要先修改源IP再使用 TOA 传递源地址,还得在负载均衡器DR和后端服务器上RS都编译非主线main line的Kernel Module,DR可以KISS(Keep It Simple, Stupid)地将源地址传递给后端服务器。

最后,虚拟化环境中已经采用Overlay虚拟网络了,所以TUNNEL的方式变得完全多余。而DR方式最大的缺点:需要LB和后端服务器在同一个二层网络,而这在UCloud的虚拟化网络中完全不是问题。主流的SDN方案追求的正是大二层带来的无缝迁移体验,且早已采用各种优化手段(例如ARP代理)来优化大二层虚拟网络。


重启指定网卡
ifdown eth0 && ifup eth0

重启除lo网卡的所有网卡
ifdown --exclude=lo -a && sudo ifup --exclude=lo -a

f

centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课的更多相关文章

  1. LVS三种模式区别

    参考文档 http://www.magedu.com/65436.html 名词:CIP 客户端IP地址   VIP:即DS服务器上的代理IP地址,也是客户端访问的执行IP地址 1.NAT模式 ①.客 ...

  2. redis4.0.13主从、哨兵、集群3种模式的 Server端搭建、启动、验证

    本文使用的是redis-4.0.13.tar.gz版本. 两个centos7系统虚拟机:192.168.10.140.192.168.10.150 redis各版本下载地址:http://downlo ...

  3. 005 Hadoop的三种模式区别

    1.本地模式 -默认模式. -不对配置文件进行修改. -使用本地文件系统,而不是分布式文件系统. -Hadoop不会启动NameNode.DataNode.ResourceManager.NodeMa ...

  4. [转]VMware Workstation网络连接的三种模式

    经常要使用VMWare Workstation来在本地测试不同的操作系统,以前也搞不清楚网络连接三种模式,最近看了几篇文章才算明白.现总结如下: 1. VMware Workstation的虚拟网络组 ...

  5. git reset三种模式

    reset三种模式区别和使用场景 区别: --hard:重置位置的同时,直接将 working Tree工作目录. index 暂存区及 repository 都重置成目标Reset节点的內容,所以效 ...

  6. LB负载均衡集群及NAT模式配置

    一.LB(load balance)负载均衡集群 负载均衡集群常用的有: 1.软件实现的 nginx(工作在OSI第七层应用层) lvs+keepalived(工作在OSI第四层传输层) 2.硬件实现 ...

  7. 应用负载均衡之LVS(一):基本概念和三种模式

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  8. LVS三种模式的区别及负载均衡算法

    LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在linux2.6+后将lvs自动加入了kernel ...

  9. LVS负载均衡三种模式的实现

    何为lvs负载均衡? lvs负载均衡(linux virtual server)又名linux虚拟服务器.由章文嵩博士主导的负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux ...

随机推荐

  1. java反射案例

     Java反射经典实例 2007-08-29 17:55:25 分类: Java Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射.反射机制是如今很多流行框架的实现 ...

  2. 【Android】[转] ANR的分析和问题处理

    一:什么是ANR ANR:Application Not Responding,即应用无响应 二:ANR的类型 ANR一般有三种类型: 1. KeyDispatchTimeout(5 seconds) ...

  3. Spring中的jar包详解

    下面给大家说说spring众多jar包的特点吧,无论对于初学spring的新手,还是spring高手,这篇文章都会给大家带来知识上的收获,如果你已经十分熟悉本文内容就当做一次温故知新吧.spring. ...

  4. 基础!winForm客户端最常用的几个基本属性

    客户端应用程序 - 是需要安装在用户电脑上才可以使用的程序特点:不需要联网也可以打开使用部分功能但是现在的情况是许多功能依然需要互联网的支持 代码部分在用户电脑上执行 WinForm常用窗体属性: 布 ...

  5. POJ3666-Making the Grade(左偏树 or DP)

    左偏树 炒鸡棒的论文<左偏树的特点及其应用> 虽然题目要求比论文多了一个条件,但是……只需要求非递减就可以AC……数据好弱…… 虽然还没想明白为什么,但是应该觉得应该是这样——求非递减用大 ...

  6. js 定义函数的几种方法 以及如何调用

    /*1.方法调用模式: 先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject 对象.*/ var car = { carId ...

  7. 护肤品总结 Skin Care (2)

    接护肤品总结(1) 面膜篇 个人不太喜欢片状面膜,所以用膏状面膜比较多. 1. Origins Drink Up-Intensive Overnight Mask 悦木之源补水睡眠面膜 牛油果油油的质 ...

  8. 国内apk加固的破解方法

    国内apk加固的破解方法 By Bob Pan 国内的apk加固技术都使用了将原有的dex隐藏, 在运行时解压, 并且通过修改app的类加载器的方式实现加固. 参考: AndoridAPK反逆向解决方 ...

  9. Linux 桌面双击运行脚本

    创建桌面文件 touch myapp.desktop 编辑此文件写入一下内容 [Desktop Entry] Name = myapp Exec = /usr/bin/xxxx/xxx.sh Icon ...

  10. Java文件写入与读取实例求最大子数组

    出现bug的点:输入数组无限大: 输入的整数,量大: 解决方案:向文件中输入随机数组,大小范围与量都可以控制. 源代码: import java.io.BufferedReader; import j ...