今天起我们需要使用rhel6.5的操作系统

什么是负载均衡:负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

说的简单点就是,由于用户增多,服务器需要处理的请求也会越来越多,这样的话一个服务器可能无法承担大的业务量,所以就出现了调度器和多个后端服务器共同组成的一个负载均衡的系统,当用户发来一个请求,调度器根据后段服务器的工作情况和负载能力,将请求分配至不同的后端服务器上,当某一个后端服务器出现故障的时候,其他的服务器依然可以正常工作(这个叫做属于高可用性),可以保证服务的稳定提供。

今天先来配置一个简单的负载均衡调度器:varnish

这里我们需要四个独立的系统支持服务的搭建,

两台后端服务器,一个调度器,和一个客户端

后端服务器的修改内容

安装http服务,开启后在显示页面写出的内容

在CDN端调度器配置varnish的内容

首先寻找安装包,这个安装包yum源里面并没有,需要去官网上面下载

安装完成之后在基本信息文件中(/etc/sysconfig/varnish)修改varnish默认的监听端口

 66 VARNISH_LISTEN_PORT=80

之后在服务内容文件(/etc/varnish/default.vcl)中修改内容并开启服务

  7 backend default {
  8   .host = "172.25.54.2";
  9   .port = "80";
设定默认varnish寻找数据包的地址

这里简述一下varnish的工作内容:用户发来请求数据包时,varnish去调度的后端服务器请求服务,后端服务器发来服务的内容,这时再有varnish回复给客户,这样就会造成一个问题,那就是会有缓存,当后端服务器的服务内容出现更改的时候,就需要向调度器发送数据,清理调度器的缓存,并从新从后端服务器更新服务的内容

只有两种情况varnish会去后端服务器寻找信息,一是ttl值到期,二是varnish中没有要访问的内容(基本信息文件)

负载均衡调度器varnish

这一步修改完成之后就可以在客户端请求数据了,记得这时要做解析(将网址的地址解析为调度器的地址,这样就不会越过调度器去访问后端服务器了)

负载均衡调度器varnish

之后可以查看缓存的命中情况

依然是在服务内容文件中修改内容

负载均衡调度器varnish

(/etc/init.d/varnish reload)

在客户端测试(最后一行的HIT from westos cache表示缓存命中)

负载均衡调度器varnish


接下来我们就要开始使用varnish的调度器功能了

在服务内容文件中修改

负载均衡调度器varnish

这里千万,千万要把上面的服务器名和下面的服务器名对上,不然就搜索不到

这个内容为,当用户请求的是域名为westos.org的网址是,对网址进行分析,如果开头是www,则向客户发送web1的服务内容,若是bbs,则发送web2的服务内容,两者都不是的话,就发送404

同样要做解析

测试:

负载均衡调度器varnish

接下来会引入一个新的工作模式,叫做rr(round-robin)轮叫,就是说当客户发来许多数据包时,调度器按照顺序挨个发送至后端服务器上

服务内容文件(在web1和web2之间进行轮叫):

负载均衡调度器varnish

将模式设置为轮叫模式set req.backend = lb(load-balance负载均衡模式,这个模式默认的轮叫方式为rr轮叫);

方便测试,不进行缓存return(pass);

负载均衡调度器varnish

测试:

负载均衡调度器varnish

前面说到varnish会有缓存,那么接下来就说如何让后端服务器将更新的服务内容发送至varnish,叫做cdn推送,这个推送需要用到http服务,和php的支持,由于apache这种服务只能解析静态页面,所以想要解析php文件,就要安装php

这里还会用到一个叫做bansys的安装包,它的功能就是将这个调度器的后端服务器连接为一个群组,当你在做cdn推送时会将信息发送至这个群组上,不然会有服务不同步的情况

调度器安装http服务,并将端口设置为8080,防止和varnish抢端口

做到这里的时候需要将前面的return(pass)注释掉,因为就是为了测试这个推送能否更新缓存,如果不注释,缓存就会即时更新,就没有了测试的意义,而且要把下面那一行的web1也注释掉,不然语句就会出问题

将bansys解压至http发布目录,修改bansys的配置文件(config.php)

负载均衡调度器varnish

对服务内容文件进行修改(对54.0这个网段设置访问控制,)

负载均衡调度器varnish

名字要对上

负载均衡调度器varnish

用浏览器输入访问网址即可

负载均衡调度器varnish

这里选择HTTP推送模式

测试:

负载均衡调度器varnish



相关文章: