varnish+nginx实现单双web服务器缓存

需要下载的有:

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”; #探测什么文件

活在当下,别在怀念过去或者憧憬未来中浪费掉你现在的生活。

varnish+nginx实现单双web服务器缓存

相关文章:

你感兴趣的文章:

标签云: