Varnish的基础配置

Varnish是一种高性能的HTTP缓存加速工具,通常用于搭建CDN服务器。

varnish的安装

下载varnish和varnish-libs
然后在有这两个文件的目录下

yum install *
cd /etc/varnish

编写配置文件

vim default.vcl 

可以进行对服务端口的修改
VARNISH_LISTEN_PORT=80(注意:端口不要与apache http的端口冲突)

开启服务用 /etc/init.d/varnish start
配置文件在 /etc/sysconfig/varnish下

varnish的配置语言VCL

如果需要配置varnish需要进入/etc/varnish/default.vcl文件中进行vcl文件的修改。
vcl是varnish自带的一种配置语言,有以下几种状态
1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或
Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进
入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地
的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
具体转换方式如图所示
这里写图片描述

设置后端服务器

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

查看缓存命中的情况,并且返回名种情况信息

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);
}

可以自己定义不同域名站点的后端服务器

backend web1 {
.host = "192.168.0.188";
.port = "80";
}
backend web2 
.host = "192.168.0.189";
.port = "80";
}

轮询

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

定义健康检查

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

测试方法使用 curl -I 域名

tips:
手动清除缓存

varnishadm ban.url .*$     清除所有的缓存
varnishadm ban.url/index.html   清除index.html的页面缓存
varnishadm ban.url/admin/$ 清除admin目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值