使用Varnish替代Squid的体验

之前曾在Windows上使用了Squid作为图片服务器的缓存,效果还不错。

前几天看到张宴同学的一篇文章《使用Varnish代替Squid做网站缓存加速器的详细解决方案》,就决定试试Linux+Varnish。

 

-------------------------------------------

 

一:安装Varnish(Linux系统)

基本安装过程,包括目录结构的安排就是依葫芦画瓢的学张宴同学。

 

1. 创建 www 组和账户 , 缓存文件目录( /var/vcache ) ,日志目录( /var/logs ) :

 
  
/ usr / sbin / groupadd www - g 48
/ usr / sbin / useradd - u 48 - g www www

mkdir
- p / var / vcache
chmod
+ w / var / vcache
chown
- R www:www / var / vcache

mkdir -p /var/logs
chmod +w /var/logs
chown -R www:www /var/logs

系统有可能会提醒你,权限编号 48 被占用,改成 49 一样可以使用。也可以直接 vi /etc/passwd 修改。

 

 

2.下载Varnish 编译安装:(下载地址也是张宴同学的)

 
  
wget http: // blog.s135.com / soft / linux / varnish / varnish - 1.1 . 2 .tar.gz
tar zxvf varnish
- 1.1 . 2 .tar.gz
cd varnish
- 1.1 . 2
.
/ configure -- prefix =/ usr / local / varnish
make
&& make install

将Varnish安装到 /usr/local/varnish 目录中。


 

3.创建Varnish配置文件(/usr/local/varnish/vcl.conf):

 
  
vi / usr / local / varnish / vcl.conf
进入VI界面,按Insert键修改文件,按Esc + :wq 保存退出。


4.配置文件内容(可以按照自己需求修改):
 
    
backend image1server {
set backend.host
= " 222.73.×××.1 " ;
set backend.port
= " 80 " ;
}

backend image2sserver {
set backend.host
= " 222.73.×××.2 " ;
set backend.port
= " 80 " ;
}


acl purge {
" localhost " ;
" 127.0.0.1 " ;
" 192.168.1.0 " / 24 ;
}

sub vcl_recv {
if (req.request == " PURGE " ) {
if (!client.ip ~ purge) {
error
405 " Not allowed. " ;
}
lookup;
}

if (req.http.host ~ " ^image1.×××.com " ) {
set req.backend
= image1server;
if (req.request != " GET " && req.request != " HEAD " ) {
pipe;
}
</span>else {
lookup;
}
}
elseif (req.http.host
~ "^image2.×××.com") {
set req.backend
= image2server;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}

else {
error
404 "Picture Cache Server";
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.";
}
}

sub vcl_fetch {
if (req.request == "GET" && req.url ~ "\.(html|asp)$") {
set obj.ttl
= 300s;
}
else {
set obj.ttl
= 7d;
}
}

(1)我是假设有2个域名指向本机器  image1.***.com 和 image2.***.com 。

(2)除了 image1.***.com 和 image2.***.com 其他的域名访问这台机器,都会返回404 Picture Cache Server。

(3).html 和 .asp 文件缓存时间为 300秒,其余的为 7 天。



5.启动Varnish:

 
   
ulimit - SHn 51200
/ usr / local / varnish / sbin / varnishd - n / var / vcache - f / usr / local / varnish / vcl.conf - a 0.0 . 0.0 : 80 - s file, / var / vcache / varnish_cache.data,1G - g www - u www - w 30000 , 51200 , 10 - T 127.0 . 0.1 : 3500 - p client_http11 = on

 

 

6.记录Varnish日志:

 
  
/ usr / local / varnish / bin / varnishncsa - n / var / vcache - w / var / logs / varnish.log &

 

 

设置开机启动,和切割日志文件,请看张宴同学的原文-=》 《使用Varnish代替Squid做网站缓存加速器的详细解决方案

 

 

 

 

二:管理Varnish

 

1.查看Varnish状态

 
  
/ usr / local / varnish / bin / varnishstat - n / var / vcache /

2010012121000620.gif

 

2.查看访问最多的引用页面

 
  
/ usr / local / varnish / bin / varnishtop - n / var / vcache / - i rxheader - I Referer

2010012121003349.gif

 

3.查看本机器上被访问最多的元素

 
  
/ usr / local / varnish / bin / varnishtop - n / var / vcache / - i rxurl

2010012121005585.gif

 

 

 

刚刚学习,欢迎大家一起讨论讨论。

 

 

 

 

 

 

 


转载于:https://www.cnblogs.com/juxiaoqi/archive/2010/01/21/1653605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值