实验环境: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一、 在Varnish服务器上安装并简单配置,需要注意的是,其依赖gcc
- # 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
- # vim /etc/sysconfig/varnish
- VARNISH_LISTEN_PORT=80 #修改其工作监听端口为80
- VARNISH_STORAGE="malloc,128M" #指定其工作于内存,申请内存128M,请确认您的系统有足够的内存可用。
- # service varnish start
二、 定义代理地址及简单
的相关策略,varnish的配置需要使用VCL语言配置,若需深入理解,则可参考官网文档,手册地址如下:
- # vim /etc/varnish/default.vcl
- backend default { #定义其代理的服务器IP和端口
- .host = "192.168.88.128";
- .port = "80";
- }
- sub vcl_recv { #定义请求中出现的test.html的请求,都直接扔给后端服务器
- if (req.url ~ "test\.html$") {
- return(pass);
- }
- }
- sub vcl_fetch { #定义GET方法的请求的html页面,缓存10秒
- if (req.request == "GET" && req.url ~ "\.html$") {
- set beresp.ttl = 10s;
- }
- }
- sub vcl_deliver { #定义测试信息,如果命中则提示Hit Via hostname反之则Miss from
- if (obj.hits > 0){
- set resp.http.X-Cache = "Hit Via" + " " + server.hostname;
- } else {
- set resp.http.X-Cache = "Miss from" + " " + server.hostname;
- }
- }
- # varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 #进入varnish的命令行管理界面
- vcl.load default default.vcl #载入上面定义的内容
- vcl.use default #使用上面载入的内容
- vcl.show default #使用shift+上下箭头,查看刚才载入是否成功
三、 配置后端WEB服务器192.168.88.128
- # yum install httpd –y
- # echo ’<h1>Master Page.</h1>’ > /var/www/html/index.html
- # echo ‘<h1>Master Test Page.</h1>’ > /var/www/html/test.html
- # echo ‘<h1>Master Demo Page.</h1>’ > /var/www/html/demo.html
- #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也看查看相关内容