用varnish做缓存服务器

一、目的

 通过配置Varnish缓存服务器,实现如下目标:

使用Varnish加速后端Apache Web服务

使用varnishadm命令管理缓存页面

使用varnishstat命令查看Varnish状态

二、方案,

      服务器规划见我的另外一篇笔记:squid反向代理,通过源码编译安装Varnish缓存服务器

三、实施:主要是部署varnish缓存服务器

    1、安装软件依赖包

     yum -y install gcc readline-devel pcre-devel 

    2、创建程序的启动账户:useradd -s /sbin/nologin varnish 

    3、编译安装软件

     tar -xf varnish-3.0.6.tar.gz                       //解压源码包

     cd varnish-3.0.6/                                    //进入到解压的目录

    ./configure --prefix=/varnish                    //配置,指定安装路径为/varnish

    make && make install                            //编译安装

    4、复制启动脚本及配置文件

    cp   redhat/varnish.initrc       /etc/init.d/varnish   

    cp   redhat/varnish.sysconfig     /etc/sysconfig/varnish

    cp   redhat/varnish_reload_vcl      /usr/bin/

    ln   -s /usr/local/varnish/sbin/varnishd   /usr/sbin/

    ln   -s /usr/local/varnish/bin/*     /usr/bin

    mkdir    /etc/varnish

   cp    /usr/local/varnish/etc/varnish/default.vcl    /etc/varnish/

   uuidgen   >      /etc/varnish/secret  //下面配置文件需要密码信息

   VARNISH_SECRET_FILE=/etc/varnish/secret

     5、修改Varnish文件

        vim /etc/sysconfig/varnish

     66行:VARNISH_LISTEN_PORT=80         //修改默认端口

     89行:VARNISH_STORAGE_SIZE=64M   //定义缓存大小,因为这里是基于内存的缓存代理,依据自身服务器的

     92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"   //定义基于内存方式缓存

   6、修改代理配置文件

   vim  /etc/varnish/default.vcl

   backend default {

          .host = "192.168.2.103";

          .port = "80";

     }

   7、启动服务  

       service  varnish  start    注:varnish启动脚本文件有问题,在rhel6上没问题

  在rhel7上有问题,当出现   Reloading systemd:     [  OK  ] 时,可以ctrl+c结束掉

  8、测试,在客户机上测试

     curl   http://192.168.4.102

  9、其它

      varnishlog        //varnish日志,直接敲命令    

      varnishncsa     //访问日志

 10、当网站更新文件后,由于在内存中的文件还在,故去访问时还是以前旧的文件,

       要么等待一段时间,要么在代理服务器上手动刷新

            varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082         //进入后台管理缓存页面

            storage.list                                                        //查看存储信息

            ban.url .*                                                         // 清内存

            varnishadm     ban.url       '.*'                 //非交互式清理.*代表所有的缓存页面

猜你喜欢

转载自blog.51cto.com/14421484/2415058
今日推荐