使用LVS+DR搭建集群实现负载均衡

使用LVS+DR搭建集群实现负载均衡

DR模式的概述与工作原理

DR模式服务概述: 

      Direct Routing(直接路由) --在同一个地域,同一个网段

Director分配请求到同的real server。real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机服务器的一半连接。负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct Routing由采用物理层(修改MAC地址)技术,因此所有服务器都必须在一个网段中。

 

LVS DR 模式工作原理: 修改MAC地址
    DR模式将报文直接路由给目标真实服务器。在DR模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由LB发出的数据包。真实服务器接收到请求数据包的时候,解开IP包头查看到的目标IP是VIP。(此时只有自己的IP符合目标IP才会接收进来,所以我们需要在本地的回环借口上面配置VIP。另:由于网络接口都会进行ARP广播响应,但集群的其他机器都有这个VIP的lo接口,都响应就会冲突。所以我们需要把真实服务器的lo接口的ARP响应关闭掉。)然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源IP地址还是VIP。

 

DR模式实际拓扑图及LVS+DR方式的工作流程图: MAC转换过程

 

 

实例场景设备清单: director分发器,DIP: 192.1681.70,

                             VIP :192.168.1.63

 

① client发送的请求基本信息: IP:192.168.1.101 向目标vip发出请求,Director接收。此时IP包头及数据帧头信息如下:

 

② Director分发器根据负载均衡算法选择一台active的realserver(假设是192.168.1.62),将此RIP所在网卡的mac地址作为目标mac地址,发送到局域网里。此时IP包头及数据帧头信息如下:

 

③ realserver(192.168.1.62)在局域网中收到这个帧,脱掉数据帧后发现目标IP(VIP)本地匹配,是处理这个报文。随后重新封装报文,发送到局域网。此时回复请求的IP包头及数据帧头信息如下:

 

④如果client与VS同一网段,那么client(192.168.57.135)将收到这个回复报文。如果跨了网段,那么报文通过gateway/路由器经由Internet返回给用户。

DR模式小结:
1、通过在调度器LB上修改数据包的目的MAC地址实现转发。注意源地址仍然是CIP,目的地址仍然是VIP地址。
2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)
3、因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面
4、RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。
5、RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。
6、由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。

 

一:实验目标

1:正确理解DR的工作原理  

2:使用LVS+DR搭建集群实现负载均衡

3:理解LVS的几种调度模式以及调度参数

4:了解ipvsadm命令参数

5:用ab命令测试网站压力

6:: 同时处理1000个请求。 一次要执行1000个并发请求。

 

二:实验拓扑

三:实验环境

1准备3台

分发器:xuegod63  VIP:eth0:1:192.168.1.63

                DIP:eth0192.168.1.70

Real server xuegod62:  RIP:eth0: 192.168.1.62

                          VIP:lo:1  192.168.1.63

Real server xuegod64:  RIP:eth0: 192.168.1.64      

                          VIP:lo:1  192.168.1.63                                                                                                                         2iptables -F , 清除规则

3selinux关闭

4:red had 6.5版本 64位操作系统

 

四:实验代码


分发器-xuegod63 

1:配置DIP和RIP地址

DIP :[[email protected] ~]# ifconfig eth0 192.168.1.70 

VIP :[[email protected] ~]# ifconfig eth0:1 192.168.1.63

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #以配置以下信息

IPADDR=192.168.1.70 

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=202.106.46.151

 

2:生成eth0:1配置文件

[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1

[[email protected] network-scripts]# vim ifcfg-eth0\:1 #写入以下内容

DEVICE=eth0:1

NM_CONTROLLED=yes

IPADDR=192.168.1.63

NETMASK=255.255.255.0

ONBOOT=yes

TYPE=Ethernet

PREFIX=24

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

NAME="eth0:1"

HWADDR=00:0C:29:12:EC:1E #Mac地址必需要写成和eth0一样,否则出来eth0:1这个网卡设备

[[email protected] network-scripts]#service network restart

[[email protected] network-scripts]# ifconfig #查看是否有eth0 和eth0:1  

inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0

inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0

 

3:配置LVS-DR规则:

[[email protected] network-scripts]# rpm -ivh /mnt/Packages/ipvsadm-1.25-9.el6.x86_64.rpm

[[email protected] ~]# ipvsadm -A -t 192.168.1.63:80 -s rr

[[email protected] ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.62 -g

[[email protected] ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.64 -g

注: -g 表示DR模式 , -m 表示IP tun 模式

 

[[email protected] ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.63:80 rr

-> 192.168.2.62:80 Route 1 0 0

-> 192.168.2.64:80 Route 1 0 0

注:三个LVS 模式中,只有NAT模式需要开启路由转发功能。 DR和TUN模式需要开启。

 

4:LVS的规则配置文件:/etc/sysconfig/ipvsadm

找到配置文件方法: 因为:/etc/init.d/ipvsadm save 可以保存。所以配置文件一定可以在/etc/init.d/ipvsadm 中找到相关保存路径。

 

[[email protected] ~]# vim /etc/init.d/ipvsadm

 

[[email protected] ~]# /etc/init.d/ipvsadm save

[[email protected] ~]# cat /etc/sysconfig/ipvsadm

-A -t 192.168.1.63:80 -s wrr

-a -t 192.168.1.63:80 -r 192.168.1.62:80 -g

-a -t 192.168.1.63:80 -r 192.168.1.64:80 -g

 

 

RealServerxuegod62:

1, 配置RIP eth0 ,桥接模式

[[email protected] ~]# ifconfig eth0 192.168.1.62/24

 

2, 回环接口 -vip

[[email protected] ~]# ifconfig lo:1 192.168.1.63 netmask 255.255.255.255

[[email protected] network-scripts]# cp ifcfg-lo ifcfg-lo:1

[[email protected] network-scripts]# cat ifcfg-lo:1

DEVICE=lo:1

IPADDR=192.168.1.63

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

[[email protected] ~]# service network restart

 

3, 关闭ARP转发功能 

[[email protected] ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

[[email protected] ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

[[email protected] ~]# vim /etc/sysctl.conf #最后添加

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.eth0.arp_announce = 2

[[email protected] ~]# sysctl -p #永久生效:(注意realserver的实际link ok的网卡是是eth0)


参数说明:


参数


作用


arp_announce为2


    对查询目标使用最适当的本地地址。例如,如果在eth0接口上接到了一个VIP的arp请求包。内核判断这个VIP地址是是eth0接口上的IP一样。如果一样,则回复这个包。如果一样,就丢弃回应。


arp_ignore 为:1


只回答目标IP地址是访问本网络接口(eth0)的ARP查询请求。

自己的理解:

   在设置参数的时候将arp_ignore设置为1,意味着当别人的arp请求过来的时候,如果接收的网卡设备的arp缓存表中没有这个ip,就不做出响应,默认是0,只要这台机器上面任何一个网卡设备上面有这个ip,就响应arp请求,并发送mac地址。

 

 

4, 网关指向公网出口路由器IP:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=192.168.1.1

 

5, 启80端口

[[email protected] ~]# echo 192.168.1.62 > /var/www/html/index.html

[[email protected] ~]# service httpd restart

 

RealServerxuegod64

1, 配置ip eth0 ,桥接模式

[[email protected] ~]#ifconfig eth0 192.168.1.64/24

 

2, 回环接口

[[email protected] ~]# ifconfig lo:1 192.168.1.63 netmask 255.255.255.255

[[email protected] network-scripts]# cp ifcfg-lo ifcfg-lo:1

[[email protected] network-scripts]# cat ifcfg-lo:1

DEVICE=lo:1

IPADDR=192.168.1.63

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

 

3, 关闭ARP转发。 

[[email protected] ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

[[email protected] ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

永久生效:(注意realserver的实际link ok的网卡是是eth0)

[[email protected] ~]# vim /etc/sysctl.conf #最后添加

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.eth0.arp_announce = 2

[[email protected] ~]# sysctl -p

 

4, 网关指向公网出口路由器IP:

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=192.168.1.1

 

5, 启80端口

[[email protected] ~]#echo 192.168.1.64 > /var/www/html/index.html

[[email protected] ~]#service httpd restart

 

测试

物理机上测试:

http://192.168.1.63/

注: 测试时,要在分发器上测试。那样测试是行的

 

////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

LVS的几种调度模式:

[[email protected] ~]# ipvsadm -h

 


参数


调度算法


-s rr


轮循法 默认算法


-s wrr


带权重的循环法


-s lc


最少连接法


-s wlc


带权重的最少连接法


-s lblc


本地的最少连接法


-s dh


目标散列法


-s sh


源散列法


-s sed


最短预期延迟法


-s nq


排队法

 


每个调度算法详细说明


数目


参数


作用


1:


轮循调度(Round Robin)(简称rr)


调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。


2:


加权轮叫(Weighted Round Robin)(简称wrr)


调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。


3:


最少链接(Least Connections)(LC)


调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。


4:


加权最少链接(Weighted Least Connections)(WLC)


在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值.


5:


基于局部性的最少链接(Locality-Based Least Connections)(LBLC


“基于局部性的最少链接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接” 的原则选出一个可用的服务器,将请求发送到该服务器


6:


带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)(LBLCR)


“带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标 IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。


7:


目标地址散列(Destination Hashing)(DH)


“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。


8:


源地址散列(Source Hashing)(SH)


“源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。


9:


最短的期望的延迟(Shortest Expected Delay Scheduling SED)(SED)


基于wlc算法。这个必须举例来说了
ABC三台机器分别权重123 ,连接数也分别是123。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算
A(1+1)/1
B(1+2)/2
C(1+3)/3
根据运算结果,把连接交给C


10:


最少队列调度(Never Queue Scheduling NQ)(NQ)


无需队列。如果有台 realserver的连接数=0就直接分配过去,不需要在进行sed运算


注:调度算法配置后立即生效,就像iptables配置规则一样。

 

测试不同的调度算法

 

1:测试LVSLVS-DR wrr-带权重的循环法

[[email protected] ~]# ipvsadm -C #清空之前的调度算法

[[email protected] ~]# ipvsadm -A -t 192.168.1.63:80 -s wrr

[[email protected] ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.62 -g -w 10

[[email protected] ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.64 -g -w 20

测试: 在物理机上,刷新9次这个链接:http://192.168.1.63/

# 一共9次连接, xuegod62:xuegod64 是 1:2 关系。 说明权重越大,获得的连接说越多。

 

2:如果一个real server 的权重是0,将再分配给他客户端的请求

[[email protected] ~]# ipvsadm -C

[[email protected] ~]# ipvsadm -A -t 192.168.1.63:80 -s wrr

[[email protected] ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.62 -g -w 0

[[email protected] ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.64 -g -w 20

在物理机上,刷新9次这个链接:http://192.168.1.63/

查看:

 #发现进来的包是有的,但是出去的包为0 .有 0 因为数据包出去时,直接交给了real server,而没有交给Director 

 

 


ipvsadm 更多参数说明


参数


说明


-A –add-service


在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也
就是增加一台新的虚拟服务器


-E –edit-service


编辑内核虚拟服务器表中的一条虚拟服务器记录。


-D –delete-service


删除内核虚拟服务器表中的一条虚拟服务器记录。


-C –clear


清除内核虚拟服务器表中的所有记录。


-R –restore


恢复虚拟服务器规则


-S –save


保存虚拟服务器规则,输出为-R 选项可读的格式


-a –add-server


在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器


-e –edit-server


编辑一条虚拟服务器记录中的某条真实服务器记录


-d –delete-server


删除一条虚拟服务器记录中的某条真实服务器记录


-L|-l –list


显示内核虚拟服务器表


-Z –zero


虚拟服务表计数器清零(清空当前的连接数量等)


–set tcp tcpfin udp


设置连接超时值


–start-daemon


启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。


–stop-daemon


停止同步守护进程


-h –help


显示帮助信息


-t –tcp-service service-address


说明虚拟服务器提供的是tcp 的服务


-u –udp-service service-address


说明虚拟服务器提供的是udp 的服务


-f –fwmark-service fwmark


说明是经过iptables 标记过的服务类型。


-s –scheduler scheduler


使用的调度算法,有这样几个选项 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, 默认的调度算法是: wlc.


-p –persistent [timeout]


持久稳固的服务。这个选项的意思是来自同一个客
户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。


-r –real-server server-address


真实的服务器[Real-Server:port]


-g –gatewaying


指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)


-i –ipip


指定LVS 的工作模式为隧道模式


-m –masquerading


指定LVS 的工作模式为NAT 模式


-w –weight weight


真实服务器的权值


–mcast-interface interface


指定组播的同步接口


-c –connection


显示LVS 目前的连接 如:ipvsadm -L -c


–t  timeout


显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L –timeout


–daemon


显示同步守护进程状态


–stats


显示统计信息


–rate


显示速率信息


-n –numeric


输出IP 地址和端口的数字形式


–sort


对虚拟服务器和真实服务器排序输出


-L -n


查看规则,显示内核虚拟服务器表


-L -n -c


查看客户端连接分发器和real server 的情况

 

例1:查看客户端连接分发器和real server 的情况

 

例2:查看速率

 

 

例3:-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

 

 

4:删除一条记录

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

: 同时处理1000个请求。 一次要执行1000个并发请求

 


Linu下的ab网站压力测试命令参数详解


格式


./ab [options] [http://]hostname[:port]/path


参数


作用


-c


在测试会话中所执行的请求个数。默认时,仅执行一个请求     


-t


一次产生的请求个数。默认是一次一个


-p


测试所进行的最大秒数


-T


包含了需要POST的数据的文件.


-v


POST数据所使用的Content-type头信息


-V


设置显示信息的详细程度


-w


显示版本号并退出。


-i


以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。   


-C


以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。   


-P


对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送


-n


在测试会话中所执行的请求总个数。默认时,仅执行一个请求 

语法: ab -n 数字 -c 数字 http://链接

-n requests Number of requests to perform

#在测试会话中所执行的请求总个数。默认时,仅执行一个请求

-c concurrency Number of multiple requests to make #一次产生的请求个数。默认是一次一个。

 

: 同时处理1000个请求。 一次要执行1000个并发请求。

在xuegod64:测试VIP:

[[email protected]4 ~]# ab -n 1000 -c 1000 http://192.168.1.63/index.html

linux下ab网站压力测试命令

 

[[email protected] ~]# ab -n 1000 -c 1000 http://192.168.1.63/index.html

可以测试一下后面两机器的负载情况。

查看状态:

[[email protected] ~]# ab -n 1000 -c 1000 http://192.168.1.63/index.html

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.63 (be patient 耐心)

Completed 100 requests

Completed 200 requests

Completed 300 requests

Completed 400 requests

Completed 500 requests

Completed 600 requests

Completed 630 requests

Completed 800 requests

Completed 900 requests

Completed 1000 requests

Finished 1000 requests #完成1000个请求

Server  Software: Apache/2.2.15   #被测试的httpd服务器版本://平台apache 版本2.2.15

Server  Hostname: 192.168.1.63   #服务器主机名

Server  Port: 80  #服务器端口

Document Path: /index.html  #测试的页面文档

Document Length: 13 bytes  #文档大小

 

说明:在xuegod62查看index.html大小。确实是13字节

[[email protected] html]# ll -h

-rw-r--r-- 1 root root 13 May 5 17:57 index.html 

Concurrency(并发) Level: 1000  #并发数

Time taken for tests: 2.166 seconds  #整个测试花费的时间

Complete requests: 1000  #完成的请求数量

Failed requests: 0  #失败的请求数量

Write errors: 0

Total transferred: 281120 bytes  #整个测试过程中总传输字节数

HTML transferred: 13052 bytes  #整个场景中的HTML内容传输量

Requests per second: 461.77 [#/sec] (mean)  #每秒处理请求数。//大家最关心的指标一,相当于服务器中的每秒事务数 ,后面括号中的 mean 表示这是一个平均值

Time per request: 2165.597 [ms] (mean)  # 大家最关心的指标二,平均请求响应时间 ,后面括号中的 mean 表示这是一个平均值

Time per request: 2.166 [ms] (mean, across all concurrent requests)  #每个请求的时间:2.166[毫秒](意思是说,在所有的并发请求) //每个请求实际运行时间的平均值。 由于对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数

Transfer rate: 126.77 [Kbytes/sec] received  #传输速率://平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

 

Percentage of the requests served within a certain time (ms) #在一定的时间内提供服务的请求的百分比(毫秒)

50% 581

66% 1053

75% 1075

80% 1089

90% 1393

95% 1793

98% 1800

99% 1804

100% 1807 (longest request)

//整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于1093 毫秒,60%的用户响应时间小于1247 毫秒,最大的响应时间小于7785 毫秒

时间: 2024-10-25 22:47:26

使用LVS+DR搭建集群实现负载均衡的相关文章

使用LVS+NAT搭建集群实现负载均衡

使用LVS+NAT搭建集群实现负载均衡 LVS集群简介    计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群计算机通常用来改进单个计算机的计算速度和/或可靠性.一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多        LVS集群分布图   集群有三种类型:           

架构之路:nginx与IIS服务器搭建集群实现负载均衡(三)

参考网址:https://blog.csdn.net/zhanghan18333611647/article/details/50811980 [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)>中提到有好多有趣的地方,接下来就为大家一块儿讲讲在深入研究过程中遇到那些有趣的事情. ·实战之行--发现问题 ·探索之旅--寻出问题原因 ·解决之道--解决问题 [实战之行] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)>中做了小Demo,当时做

架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)

[前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下Nginx的神奇之处. [准备工作] ·安装一款文本编辑器(这里以Notepad++为例) ·下载Nginx(这里以Nginx-1.4.7为例,其他版本操作相同) ·建两个简单网页:在文件夹test1新建一个html页内容为--我是Test1,在文件夹test2新建一个html页内容为--我是Test2) ·将

用apache和tomcat搭建集群,实现负载均衡

型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问题需要解决. 一.Session的复制 二.如何将请求发送到正常的服务器 针对以上问题,可以使用群集和负载均衡来解决,整体架构如下:  中间由一台服务器做负载均衡(Load Balancer),它将所有请求,根据一定的负载均衡规则发送给指定的群集服务器(Cluster),群集服务器拥有着相同的状态和

LVS搭建集群实现负载均衡-NAT模式

服务介绍: LVS 简称 Linux Virtual Server,在实际环境中经常作为B/S结构的网络应用中的负载均衡器来使用,工作在7层网络模型中的,网络层,也就是通常说的IP层,由于数据的处理是在Linux内核态完成的,所以性能很高 nat 模式: 支持任 何操作系统,以及私有网络,只需要一个公网ip ,系统性能受到限制,每次执行nat需要重写包,有一定延迟. 实验环境 实验环境: xuegod 63   VIP:eth0 192.168.0.103    ; DIP:eth1 192.1

LVS+Keepalived搭建MyCAT高可用负载均衡集群

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及Mast

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

Nginx实现集群的负载均衡配置过程详解

Nginx实现集群的负载均衡配置过程详解 Nginx 的负载均衡功能,其实实际上和 nginx 的代理是同一个功能,只是把代理一台机器改为多台机器而已. Nginx 的负载均衡和 lvs 相比,nginx属于更高级的应用层,不牵扯到 ip 和内核的修改,它只是单纯地把用户的请求转发到后面的机器上.这就意味着,后端的 RS 不需要配置公网. 一.实验环境 Nginx 调度器 (public 172.16.254.200 privite 192.168.0.48)RS1只有内网IP (192.168

通过Apache+mod_JK+Tomcat集群实现负载均衡

通过Apache+mod_JK+Tomcat集群实现负载均衡 1.概念 通过Apache+mod_JK+Tomcat集群搭建起来的环境主要用来实现负载均衡和高可用性.使用apache作为反向代理服务器实现负载均衡,使用mod_jk可以实现节点的故障恢复功能,达到高可用性.使用tomcat集群功能实现sessionID共享复制.用户访问数据在到达apache后,如果是静态内容,直接由apache处理,如果是动态请求,就通过mod_jk调用后端的一台tomcat服务器去处理请求,可以通过黏性Sess