HTTP缓存之Varnish安装部署与配置

Varnish是一款高性能的开源HTTP加速器,其采用全新的软件体系机构,和现在的硬件体系紧密配合,与传统的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等诸多优点,很多大型的网站都开始尝试使用 varnish 来替换 squid,这些都促进 varnish 迅速发展起来。

Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。

 

缓存类型:代理式缓存(递归方式);旁挂式缓存(迭代)

缓存机制:过期机制(Expires)、条件式缓存(通过最近文件修改时间戳或Etag的扩展标签来辨别)

 

 

官方网站:http://varnish-cache.org/releases/index.html

 

安装varnish与配置 :

rpm安装:

curl -s https://packagecloud.io/install/repositories/varnishcache/varnish61/script.rpm.sh | sudo bash

sudo yum install varnish-6.1.1-1.el7.x86_64

或,下载rpm包,然后执行:

wget https://packagecloud.io/varnishcache/varnish61/packages/el/7/varnish-6.1.1-1.el7.x86_64.rpm

rpm -ivh varnish-6.1.1-1.el7.x86_64.rpm

或下载rpm包后执行:yum install varnish-devel.x86_64 varnish-libs-devel.x86_64 -y

 

启动: systemctl start varnish或service varnish start

 

 

Varnish配置文件参考手册: https://docs.varnish-software.com/

 

配置文件修改: vim /etc/varnish/default.vcl  ,一个案例演示:黄色是服务器主机名,绿色是IP

backend imgsrv1 {

                .host = "192.168.10.11";

                .port = "80";

}

        

backend imgsrv2 {

                .host = "192.168.10.12";

                .port = "80";

}       

        

backend appsrv1 {

                .host = "192.168.10.21";

                .port = "80";

}

        

backend appsrv2 {

                .host = "192.168.10.22";

                .port = "80";

}

        

sub vcl_init {

                new imgsrvs = directors.random();

                imgsrvs.add_backend(imgsrv1,10);

                imgsrvs.add_backend(imgsrv2,20);

                new staticsrvs = directors.round_robin();

                appsrvs.add_backend(appsrv1);

                appsrvs.add_backend(appsrv2);

                

                new appsrvs = directors.hash();

                appsrvs.add_backend(appsrv1,1);

                appsrvs.add_backend(appsrv2,1);         

}

      

sub vcl_recv {

                if (req.url ~ "(?i)\.(css|js)$" {

                        set req.backend_hint = staticsrvs.backend();

                }               

                if (req.url ~ "(?i)\.(jpg|jpeg|png|gif)$" {

                        set req.backend_hint = imgsrvs.backend();

                } else {                

                        set req.backend_hint = appsrvs.backend(req.http.cookie);

                }

}

 

 

varnish的几个命令行工具介绍:

varnishlog   把每一个请求拆开详细显示

varnishtop   把请求method按照速率做一个简单排序

varnishstat  动态显示请求

参数:-l -f FILED_NAME 只显示特定性一次;

-l 可用于-f选项指定的字段名称列表

varnishncsa  按照ncsa格式显示日志

 

varnish的访问日志一般在内存中,容量大概只有80-90M,用不了多久就会被覆盖,如果不想别覆盖,可以把varnishncsa当日志服务启动(建议不开启日志功能,容易产生干扰)

 

varnish程序的几个重要文件:

/etc/varnish/varnish.params: 配置varnish服务进程的工作特性,例如监听的地址和端口,缓存机制;
 /etc/varnish/default.vcl:配置各Child/Cache线程的缓存策略;
 主程序:/usr/sbin/varnishd

 

 

 

 

 

   

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值