需要下载的有:
varnish-3.0.5-1.el6.x86_64
varnish-docs-3.0.5-1.el6.x86_64
varnish-libs-3.0.5-1.el6.x86_64
varnish的官网地址:https://www.varnish-cache.org/
实验环境:
web1:172.16.18.3Nginx
web2:172.16.17.12 Nginx
varnish:172.16.18.1 Varnish
实验内容:
一,安装varnish包,配置web服务器
[root@node1~]#rpm-qlvarnish/etc/rc.d/init.d/varnish#varnish的启动程序/etc/rc.d/init.d/varnishlog#日志/etc/rc.d/init.d/varnishncsa#日志/etc/sysconfig/varnish#配置文件,varnish定义自身属性/etc/varnish#配置文件目录/etc/varnish/default.vcl#默认配置文件,定义后端节点的/usr/bin/varnish_reload_vcl#加载vcl,,/usr/bin/varnishadm#客户端程序/usr/bin/varnishstat#状态监控
二,编辑配置文件
[root@node1~]#vim/etc/sysconfig/varnishNFILES=131072MEMLOCK=82000NPROCS=”unlimited”RELOAD_VCL=1#是否重载VCL文件##Alternative3,AdvancedconfigurationVARNISH_VCL_CONF=/etc/varnish/default.vcl#vcl文件路径VARNISH_LISTEN_PORT=80#varnish自己工作于那个端口。默认是6081VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1#管理接口VARNISH_ADMIN_LISTEN_PORT=6082#管理接口监听端口VARNISH_SECRET_FILE=/etc/varnish/secret#密钥文件VARNISH_MIN_THREADS=50#最少空闲线程VARNISH_MAX_THREADS=1000#最多启动线程VARNISH_THREAD_TIMEOUT=120#work超时时长#VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin#存储文件VARNISH_STORAGE_SIZE=64M#存储文件文件大小#VARNISH_STORAGE=”file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}”#存储方式fileVARNISH_STORAGE=”malloc,${VARNISH_STORAGE_SIZE}”#基于内存方式VARNISH_TTL=120DAEMON_OPTS=”-a${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT}\-f${VARNISH_VCL_CONF}\-T${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT}\-t${VARNISH_TTL}\-w${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT}\-uvarnish-gvarnish\-S${VARNISH_SECRET_FILE}\-s${VARNISH_STORAGE}”
[root@node1~]#vim/etc/varnish/default.vclbackenddefault{.host=”172.16.18.3″;.port=”80″;}
Not in cache
<h3>Guru Meditation:</h3>
XID: 506876240
<hr>
Varnish cache server
</body> </html>
这下和我们定义的一样的,看来还得注意判断的先后次序。
下边我们来定义一下有cookie的文件走向。
首先在vcl_resv添加
if (!(req.url ~ “wp-(login|admin)”)) { #所有有cookie的请求都不查缓存
unset req.http.cookie;
}
在vcl_fetch中定义抹除cookie
sub vcl_fetch {
if (!(req.url ~ “wp-(login|admin)”)) {
unset beresp.http.Set-Cookie;
}
}
三,后端主机的健康检测
backend web1 {
.host = “172.16.18.3”;
.port = “80”;
.probe = {
.url = “/index.html”; #探测什么文件
活在当下,别在怀念过去或者憧憬未来中浪费掉你现在的生活。