作者:丽丽loveyou2002 | 来源:互联网 | 2014-05-28 12:03
varnish是现在很流行的一个HTTP缓存加速解决方案,被广泛应用于各种大型网站,国外的一家在线报纸网站只用了5台varnish服务器换掉了原来的13台squid服务器,而且性能还有提升,可见varnish的强大之处。varnish是基于内存的缓存加速。YUM安装方法:1.系统需
varnish是现在很流行的一个HTTP缓存加速解决方案,被广泛应用于各种大型网站,国外的一家在线报纸网站只用了5台varnish服务器换掉了原来的13台squid服务器,而且性能还有提升,可见varnish的强大之处。varnish是基于内存的缓存加速。
YUM安装方法:
1.系统需求
最好是全新系统,我在
centos6X64安装,yum安装支持
centos5或6,安装前先把httpd卸载,执行:
yum remove httpd
2.开始安装,
执行:
# rpm --nosignature -i
http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release-3.0-1.noarch.rpm
# yum install varnish
大约一分钟即可安装完毕
3.配置varnish:
只需要编辑一个文件,在 /etc/varnish/default.vcl 以下是基本范例:
backend web1 {
#web1为定义名称随便写
.host = "你的源站ip"; #你需要加速的网站ip
.port = "80";
#你的源站端口,默认80
.connect_timeout = 1s; #连接超时时间
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
}
backend web2 {
#这里是第二个源站
.host = "你的第二个源站ip";
.port = "80";
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
}
#acl
acl purge {
"localhost";
"127.0.0.1";
"192.168.169.0"/24;
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge)
{
error 405 "Not allowed.";
}
return(lookup);
}
if (req.http.host ~ "^
google.com") {
#web1对应的域名
set req.backend = web1;}
elseif (req.http.host ~ "^(www)|(my).baidu.com") {
#web2对应的域名
set req.backend = web2;}
else {
error 404 "Caesar's cache-server ! QQ: 189717888";
#如果域名不在以上范围的出错提示
#set req.backend = web1;
}
if (req.request != "GET" && req.request != "HEAD") {
return(pipe);
}
elseif (req.url ~ "\.(php|cgi)($|\?)")
#动态页面直接通过,不缓存
{
return(pass);
}
return(lookup);
}
sub vcl_hit {
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "Purged.";
}
}
sub vcl_miss {
if (req.request == "PURGE") {
error 404 "Not in cache.";
}
}
4.启动varnish
varnishd -f /etc/varnish/default.vcl -s malloc,1G -T127.0.0.1:2000
其中1G为varnish使用内存大小,根据自己情况定,一般为物理内存的三分之一大小
结束varnish命令:
pkill varnish
5.解析你的域名到varnish服务器
6.HAVE FUN !