使用Squid缓存Web应用
前一篇转的体系架构的文章有提起Squid 。它相当于在浏览器和Web服务器之间的缓存代理服务器,可以缓存Web服务器上的网页图片文件等内容和资源。
效果图类似这样,Squid起着”前端页面”缓存的作用。
今天下载后简单配置,果然cache的效果不错。
C:\perl accessHTML.pl <— disable Squid
start at 2008/11/20 19:51:50
End at 2008/11/20 19:53:49
Total elasped time is 119 secondsC:\perl accessHTML.pl <— enalbe Squid by proxy
start at 2008/11/20 20:03:24
End at 2008/11/20 20:03:59
Total elasped time is 35 seconds
可以看到使用了Squid进行缓存后,网页访问时间确实有很大改进。
简单测试perl脚本
只比上次的测试,增加了proxy选择是否使用Squid的网页缓存代理服务
#!/usr/bin/perl
use Time::Local;
use LWP::UserAgent;my $endtime;
my $starttime;
my $elaspedtime;$starttime = time();
my @array=(localtime)[5,4,3,2,1,0];
$array[0]+=1900;
$array[1]+=1;
my $nowtime=sprintf(”%04u/%02u/%02u %02u:%02u:%02u”,@array);
print(”start at “.”$nowtime\n”);for($i = 1; $i < 30; $i++) {
$url=”http://www.yumianfeilong.com/”;
$ua = LWP::UserAgent->new();
$ua->proxy([’http’] => “http://127.0.0.1:3128/”);$res=$ua->request( HTTP::Request->new(’GET’,$url));
if ($res->is_success)
{
$countoflines=10000;
$randnum = int(rand($countoflines));
$dmpfile = “htmlfile.$randnum.html”;
open DMPFILE,”>$dmpfile” or die “Can not open and write to $dmpfile”;
print DMPFILE $res->content;
close(DUMPFILE);
unlink(”$dmpfile”);
}
else
{
print (”Error: ” . $res->status_line . “\n”) ;
}
}#end for loop$endtime = time();
#print “Total elasped time is ” . $endtime - $starttime . ” seconds. \n”;
my @array2=(localtime)[5,4,3,2,1,0];
$array2[0]+=1900;
$array2[1]+=1;
my $nowtime=sprintf(”%04u/%02u/%02u %02u:%02u:%02u”,@array2);
print(”End at “.”$nowtime\n”);
print(”Total elasped time is “);
print(@array2[5] + @array2[4]*60 - @array[5] - @array[4]*60 );
print(” seconds.\n”);
proxy表示我将Squid监听在本地机器的3128端口上。


















