2014-04-17 16:59:01
来 源
itjs.cn
Varnish
本文介绍CentOS使用varnish自建cdn加速服务器,希望对于Varnish入门者给与帮助。更多Varnish资源请本站内搜索。
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 !

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。