Varnish——CDN加速的实现(多个后端服务器实现负载均衡)

实验环境的搭建:

主机名 IP 服务
server1 172.25.254.1 varnish
server2 172.25.254.2 apache
server3 172.25.254.3 apache

配置server1:
配置server2:
  1. 安装apache服务: yum install httpd -y
  2. 在http服务默认发布目录下编写文件

在这里插入图片描述

配置server3(同上):
  1. 安装apache服务: yum install httpd -y
  2. 在http服务默认发布目录下编写文件

在这里插入图片描述


一、配置多个后端服务器

配置server1:
  1. 编辑varnish默认配置文件
[root@server1 ~]# vim /etc/varnish/default.vcl 
backend web1 {       ##后端第一台服务器web1
  .host = "172.25.254.2";
  .port = "80";
}

backend web2 {     ##后端第二台服务器web2
  .host = "172.25.254.3";
  .port = "80";
}

## 以下内容意思是当客户端访问www.westos.org域名时,到web1上取数据
##当访问bbs,westos.org域名时,到web2上取数据
##当访问其他则会报错
sub vcl_recv {
     if (req.http.host ~ "^(www.)?westos.org"){
        set req.http.host = "www.westos.org";
        set req.backend = web1;
}elsif (req.http.host ~ "^bbs.westos.org"){
        set req.backend = web2;
    }   else{
         error 404 "westos cache";
    }
}
##清除缓存
sub vcl_deliver{
    if (obj.hits > 0){
        set resp.http.X-Cache = "HIT from westos cache";
        }
    else {
        set resp.http.X-Cache = "MISS from westos cache";
        }
return (deliver);
}

在这里插入图片描述

  1. 修改完后重新加载配置文件

在这里插入图片描述
boot 是后端服务器被访问的此数,我这没访问过就是0

测试:
  1. 在真机上添加解析:vim /etc/hosts

在这里插入图片描述

  1. 测试:

在这里插入图片描述


二、负载均衡

什么是负载均衡?

1)负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。
2)简单来说就是:其一是将大量的并发处理转发给后端多个节点处理,减少工作响应时间;其二是将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。

配置server1:

[root@server1 ~]# vim /etc/varnish/default.vcl 
backend web1 {       ##后端第一台服务器web1
  .host = "172.25.254.2";
  .port = "80";
}

backend web2 {     ##后端第二台服务器web2
  .host = "172.25.254.3";
  .port = "80";
}

director lb round-robin {     ##轮询
        { .backend = web1; }
        { .backend = web2; }
}

sub vcl_recv {
     if (req.http.host ~ "^(www.)?westos.org"){
        set req.http.host = "www.westos.org";
        set req.backend = lb;    ##启用轮询
        return (pass);    ##为了方便测试,此处不做缓存
}elsif (req.http.host ~ "^bbs.westos.org"){
        set req.backend = web2;
    }   else{
         error 404 "westos cache";
    }
}
sub vcl_deliver{
if (obj.hits > 0){
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
重新加载配置文件
[root@server1 ~]# /etc/init.d/varnish reload

在这里插入图片描述

测试:当访问www.westos. org时,web1与web2轮询

在这里插入图片描述


三、虚拟机(一台主机多个解析)

配置server3
  1. 编辑server3主机http服务主配置文件,在最后添加如如下内容
[root@server3 ~]# vim /etc/httpd/conf/httpd.conf
 990 NameVirtualHost *:80   ##注释打开

##在最后编辑:
<VirtualHost *:80>
DocumentRoot /www
ServerName www.westos.org
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.westos.org
</VirtualHost>
  1. 创建/www和/bbs两个目录,并在目录下编写发布文件index.html
[root@server3 ~]# mkdir /www
[root@server3 ~]# mkdir /bbs
[root@server3 ~]# cd /www/
[root@server3 www]# vim index.html
[root@server3 www]# cat index.html 
server3_1
[root@server3 www]# cd /bbs
[root@server3 bbs]# vim index.html
[root@server3 bbs]# cat index.html 
server3_2
  1. 重启http服务
[root@server3 bbs]# /etc/init.d/httpd restart
测试
  1. 在主机上添加解析:vim /etc/hosts

在这里插入图片描述

  1. 测试:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43287982/article/details/87472215