用varnish做缓存服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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

         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       '.*'                                               //非交互式清理.*代表所有的缓存页面



















              

以上是关于用varnish做缓存服务器的主要内容,如果未能解决你的问题,请参考以下文章

Varnish缓存服务及应用

缓存服务器memcached和varnish

缓存服务器之memcached和varnish

Varnish缓存机制详细介绍及简单配置

Varnish反向代理缓存服务器

Magento 使用 varnish 进行整页缓存