一.部署单个后端服务器的Varnish
配置好的实验环境如下所示:
nodel1 | 172.25.11.11 |
---|---|
nodel2 | 172.25.11.12 |
nodel3 | 172.25.11.13 |
第一步:
利用ssh连接(这个实验只需要两个虚拟机和真机,所以我们采用的是nodel1和nodel2)
我们用nodel1当作varnish服务器,将varnish安装包从真机中传入nodel1
第二步:
在nodel1中安装varnish软件包
此时会生成一个Varnish用户
varnish服务的说明文档(类似)
第三步:
查看打开文件数,发现我们打开的文件数与varnish说明的打开文件个数上限不匹配
这里有两个方法可以使其配置文件的最大打开的文件数与文件的上限相匹配,其一是把配置文件中的最大打开文件数更改小一点,其二是增加内存,这里我们将增加内存的大小
首先使其虚拟机关闭
增加内存为2048
再重新连接,发现达到了文件上限
第四步:
vim /etc/varnish/varnish.params
修改Varnish的端口,将其端口修改为80
VARNISH_LISTEN_PORT=80
第五步:
查看系统允许的内存锁定和文件连接最大,发现系统只允许64M内存锁定,需要去修改
vim /etc/security/limits.conf
在里面最后写入:
varnish - nofile 131072
varnish - memlock 82000
启动varnish,查看端口
注意:因为varnish这个程序运行在varnish这个用户的私有空间内,内核对普通文件限制的最大文件数为98846,对varnish用户限制的最大文件数为131072,所以我们需要满足这个最大值
第六步:
在配置文件 /etc/varnish/default.vcl 中进行配置,使其可以作为nodel2的反向代理。
vim /etc/varnish/default.vcl
配置单个后端服务器
backend default {
.host = "172.25.11.12";
.port = "80";
}
缓存是否命中:会发现没有缓存时是X-Cache: MISS from westos cache,访问过一次缓存保存后,再次访问时会显示击中X-Cache: HIT from westos cache,说明缓存命中
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);
重启服务
第七步:
对nodel2进行配置:
第八步:
在真机里进行测试:
可以在varnish服务器里面手动清理缓存
varnishadm ban req.url "~" / 清除目录缓存
varnishadm ban req.url "~" /index.html 清除网页缓存
例如: