varnish缓存服务器的搭建、

varnish缓存服务器的搭建

1、在rhel6.5(server7)上安装varnish,在server8和server9上安装httpd服务。
我用的版本:varnish-3.0.5-1.el6.x86_64

varnish 默认对外提供的端口是6081,自己本地的管理端口是6082
在配置文件vcl文件中定义多个后端主机

backend web1 {
    .host = "172.25.44.8";
    .port = "80";
}

backend web2 {
        .host = "172.25.44.9";
        .port = "80";
}

客户端访问www.wtt.com时从web1上获取答案,访问bbs.wtt.com时从web2上返回结果。
vcl_recv部分添加以下内容

 if(req.http.host~"^(www.)?wtt.com"){
        set req.http.host = "www.wtt.com";
        set req.backend = web1;
    }elif(req.http.host~"^bbs.wtt.com"){
        set req.backend = web2;
    }else{
        error 404 "wtt cache";
    }

定义负载均衡以及健康状态检查
(1)健康状态检查

probe healthcheck {
.url = "/index.html"; # 哪个 url 需要 varnish 请求
.interval = 5s; #检查的间隔时间
.timeout = 1s; #等待多长时间探针超时
.window = 5; #维持 5 个 sliding window 的结果
.threshold = 3; #至少有三次 window 是成功的,就宣告 bachend 健康
}

在定义完健康状态检查后需要在后端主机上调用

backend web1 {
  .host = "172.25.44.8";
  .port = "80";
  .probe = healthcheck;
}
backend web2 {
.host = "172.25.44.9";
.port = "80";
.probe = healthcheck;
}

(2)定义负载均衡

#将多个主机聚合成一个组,并检测后端健康状态。
director lb round-robin {
{.backend = web1;}
{.backend = web2;}
}

在vcl_revc部分调用所定义的负载均衡

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;  

} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

接下来我们在server8和server9上同时定义www.westos.org 和bbs.westos.org这两个虚拟主机

<VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName www.westos.org
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /www
        ServerName bbs.westos.org
</VirtualHost>
<Directory "/www">
        Allowoverride None
        Require all granted
</Directory>

在server8上访问的页面是:
在这里插入图片描述

在server9上可以访问到的页面是:
在这里插入图片描述

在客户端访问www.westos.org
可以看到是有负载均衡效果的,并且没有从缓存中返回结果
在这里插入图片描述
访问bbs.westos.org
可以看到都是没有负载均衡的效果,并且可以从缓存中返回结果。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值