标签:style blog http color os io 使用 strong ar
Varnish 是一款开源的HTTP加速器和反向代理服务器,它的主要特点有:
(1)是基于内存缓存,重启后数据将消失。
(2)利用虚拟内存方式,io性能好。
(3)支持设置0~60秒内的精确缓存时间。
(4)VCL配置管理比较灵活。
(5)32位机器上缓存文件大小为最大2G。
(6)具有强大的管理功能,例如top,stat,admin,list等。
(7)状态机设计巧妙,结构清晰。
(8)利用二叉堆管理缓存文件,达到积极删除目的。
与Squid服务器相比,Varnish的优点包括:
1、稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。
2、访问速度更快。采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取;而Squid是从硬盘读取缓存数据,因此Varnish在访问速度方面会更快。
3、支持更多的并发连接。因为Varnish的TCP连接释放要比Squid快,所以在高并发连接情况下可以支持更多的TCP连接。
4、可以通过管理端口,使用正则表达式批量清除部分缓存,而Squid做不到。
缺点也有:
1、在高并发状态下CPU、I/O和内存等资源开销都高于Squid。
2、进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会被发送到后端服务器,在高并发情况下,这会给后端服务器造成很大压力。
set req.http.User-Agent = "unknown"; unset req.http.Range;
include "foo.vcl";
import std; sub vcl_recv { std.log("foo"); }
probe healthcheck { .url = "/test.jpg"; # 定义健康检查的页面 .interval = 6s; # 探测请求的发送周期,默认为5s .timeout = 0.3 s; # 每次探测请求的过期时长,默认为2s .window = 8; # 设定在判定后端主机健康状态时基于最近多少次的探测进行,默认为8 .threshold = 3; # 在.window中指定的次数中,至少有多少次是成功的才判定后端主机正健康运行,默认为3 .initial = 3; # Varnish启动时对后端主机至少需要多少次的成功探测,默认同.threshold }
backend default { .host = "127.0.0.1"; .port = "80";
.probe = healthcheck;
.host_header = "www.example.com"; .connect_timeout = 60s; .first_byte_timeout = 60s; .between_bytes_timeout = 60s; .max_connections = 800; }
其中,host选项是必须显式赋值的,其它选项都可选;
director b2 random { .retries = 5; { // We can refer to named backends .backend = b1; .weight = 7; } { // Or define them inline .backend = { .host = "fs2"; } .weight = 3; } }
acl localnetwork { "localhost"; # myself "192.0.2.0"/24; # and everyone on the local network ! "192.0.2.23"; # except for the dial-in router }
if (client.ip ~ localnetwork) { return (pipe); }
VCL 动作(Actions)
VCL公共变量
标签:style blog http color os io 使用 strong ar
原文地址:http://www.cnblogs.com/chenny7/p/3950086.html