Varnish是一款高性能且开源的反向代理服务器和http加速器。
由于:Squid缓存在/var/spool/squid/硬盘下;
Varnish缓存在内存上。
因此:Varnish速度更快、性能更高、管理更方便等。
但是:Varnish功能并没有Squid丰富,比如不能‘访问外国网站’等。
一、Varnish代理服务器安装:
(编译安装)
二、修改配置文件:
①#vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80 #默认端口
89行:VARNISH_STORAGE_SIZE=64M #定义缓存大小
92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" #基于内存方式缓存
②#vim /etc/varnish/default.vcl #后台web服务器信息
backend default {
.hosts="192.168.2.100";
.port="80";
}
注意:关闭squid,或者关闭httpd
三、启服务:
#/etc/init.d/varnish start
(报错的话看防火墙有没有打开)
查看状态:
#netstat -nptlu | grep 80
问题:
1.日志:
varnishlog #varnish 日志
varnishncsa #查看有多少人访问
2.缓存过期
①等等
②实时性高的如价格等,不推荐用缓存
#varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082
#查看文件
>ban.url .* #全部清除
ban的相关用法
1.>ban.url /download/
#清理所有域名下download下的缓存
2.匹配域名和url正则
>ban req.http.host == "example.com" && req.url ~ ".png$"
#清理example.com域名下所有png文件的缓存
3、根据大小进行处理
>req.url !~ ".ogg$" && obj.size > 10MB
#以上是清理所有大于10MB的ogg文件。
4、加cookile参数的清理
>req.http.host ~ "^(?i)(www.)example.com$" && obj.http.set-cookie ~ "USERID=1663"
#这里是处理无论是www.example.com还是example.com下的cookile值USERID=1663的所有缓存 。