实验环境:RHEL5.8

Varnish服务器: 外网IP:172.16.0.103   内网IP:192.168.88.22
Http服务器: IP  192.168.88.128

   相关软件包笔者已上传至网盘:
varnish-3.0.2-1.el5.i386.rpm、varnish-libs-3.0.2-1.el5.i386.rpm和jemalloc-2.1.3-2.el5.i386.rpm
http://pan.baidu.com/share/link?shareid=139543&uk=1678158691

一、 在Varnish服务器上安装并简单配置,需要注意的是,其依赖gcc
 

 
  
  1. # yum --nogpgcheck localinstall varnish-3.0.2-1.el5.i386.rpm varnish-libs-3.0.2-1.el5.i386.rpm jemalloc-2.1.3-2.el5.i386.rpm  
  2. # vim /etc/sysconfig/varnish  
  3. VARNISH_LISTEN_PORT=80 #修改其工作监听端口为80  
  4. VARNISH_STORAGE="malloc,128M"  #指定其工作于内存,申请内存128M,请确认您的系统有足够的内存可用。  
  5. # service varnish start 

二、 定义代理地址及简单

的相关策略,varnish的配置需要使用VCL语言配置,若需深入理解,则可参考官网文档,手册地址如下:
https://www.varnish-cache.org/docs/3.0/reference/vcl.html#varnish-configuration-language
 

 
  
  1. # vim /etc/varnish/default.vcl  
  2. backend default {  #定义其代理的服务器IP和端口  
  3.   .host = "192.168.88.128";    
  4.   .port = "80";  
  5. }  
  6. sub vcl_recv {  #定义请求中出现的test.html的请求,都直接扔给后端服务器  
  7.  if (req.url ~ "test\.html$") {  
  8.   return(pass);  
  9.  }  
  10. }  
  11. sub vcl_fetch { #定义GET方法的请求的html页面,缓存10秒  
  12.  if (req.request == "GET" && req.url ~ "\.html$") {  
  13.   set beresp.ttl = 10s;  
  14.  }  
  15. }  
  16. sub vcl_deliver { #定义测试信息,如果命中则提示Hit Via hostname反之则Miss from 
  17.  if (obj.hits > 0){  
  18.   set resp.http.X-Cache = "Hit Via" + " " + server.hostname;   
  19.  } else {  
  20.   set resp.http.X-Cache = "Miss from" + " " + server.hostname;  
  21.  }  
  22. }  
  23. # varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 #进入varnish的命令行管理界面  
  24. vcl.load default default.vcl #载入上面定义的内容  
  25. vcl.use default   #使用上面载入的内容  
  26. vcl.show default  #使用shift+上下箭头,查看刚才载入是否成功 

三、 配置后端WEB服务器192.168.88.128
 

 
  
  1. # yum install httpd –y  
  2. # echo ’<h1>Master Page.</h1>’  >  /var/www/html/index.html  
  3. # echo ‘<h1>Master Test Page.</h1>’  > /var/www/html/test.html  
  4. # echo ‘<h1>Master Demo Page.</h1>’  > /var/www/html/demo.html  
  5. #service httpd restart 

四、 简单测试其效果。

1、 在varnish上访问外网IP 172.16.0.103,看其是否正常
#使用curl -I 172.16.0.103/index.html访问首页后端192.168.88.128的首页,内容如下:

 

#使用curl -I 172.16.0.103/test.html访问首页后端192.168.88.128的首页,内容如下:

2、 使用comodo浏览的开发者工具(ctrl+shift+i)-->Network也看查看相关内容