WEB运维手册

负载均衡

负载均衡之LVS

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS集群采用IP负载均衡技术和基于内容请求分发技术,是一个高性能的前端调度分发器。

LVS分为三种模式,分别为NAT、DR、TUN,三种IP负载均衡技术的优缺点比较:

杂项         VS/NAT     VS/TUN      VS/DR
服务器操作系统    任意      支持隧道     多数(支持Non-arp )
服务器网络      私有网络    局域网/广域网   局域网
服务器数目          10-20      100       多(100)
服务器网关      负载均衡器   自己的路由    自己的路由
效率         一般      高        最高

常用算法

  • 轮叫调度(Round Robin)(简称rr)

把外部的请求按照顺序轮流分发到集群中的服务器中,如何你的服务器集群的机子性能完全相等的,可以使用此种。

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

根据权重分发请求给集群的服务器。如a:2 b:1,那么给a两次,才给b一次。

  • 最少链接(Least Connections)(LC)

根据集群服务器的建立连接数,将请求优先分配给连接值最低的的机器。

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

根据权重比与建立连接数,权重比越高,将承受较大的活动连接数。

#

以下为默认的DR模式

安装

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

绑定一个虚拟IP

[root@localhost ~]# ifconfig eth0:0 192.168.1.200 broadcast 192.168.0.200 netmask 255.255.255.255 up

添加本地路由

[root@localhost ~]# route add -host 192.168.1.200 dev eth0:0

开启转发

[root@localhost ~]# echo "1" >/proc/sys/net/ipv4/ip_forward

LVS配置,假设我们有两个web服务器,IP分别是104、105。

[root@localhost ~]# ipvsadm -C #清空所有记录
[root@localhost ~]# ipvsadm -A -t 192.168.1.200:80 -s rr #转发IP 算法
[root@localhost ~]# ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.104:80
[root@localhost ~]# ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.105:80

然后分别给两台web服务器配置一个虚拟IP地址

[root@web1 ~]# ifconfig eth0:0 192.168.1.200 broadcast 192.168.1.200 netmask 255.255.255.255 up
[root@web2 ~]# ifconfig eth0:0 192.168.1.200 broadcast 192.168.1.200 netmask 255.255.255.255 up

测试访问,先将域名解析到LVS。

[root@Master ~]# curl letong.me
this web1.
[root@Master ~]# curl letong.me
this web2.

负载均衡之Haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。图示

1、HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段);

2、Session的保持,Cookie的引导等工作;

3、支持url检测后端的服务器;

4、可以对Mysql进行检测与负载 ;

#

安装

yum -y install haproxy

配置文件

/etc/haproxy/haproxy.cfg

修改配置文件

frontend  main *:80
    default_backend             app

backend app
    balance     roundrobin
    server  web1 192.168.1.104:80 check
    server  web2 192.168.1.105:80 check

测试访问,将域名解析到haproxy服务器的IP

[root@Master ~]# curl letong.me
this web1.
[root@Master ~]# curl letong.me
this web2.