Centos 6.5  varnish

源码编译需要安装以下的依赖:

报错:
./autogen.sh
./autogen.sh: line 47: libtoolize: command not found
安装依赖:yum install libtool*
报错:configure: error: requires an X/Open-compatible Curses library
安装依赖:yum install ncurses-devel -y
报错:configure: error: neither libedit nor another readline compatible library found
安装依赖:yum install libedit-devel -y

rpm包安装所需的依赖:

1、安装varnish所需lib,

 rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-4.0/el6/x86_64/varnish/varnish-libs-4.0.0-1.el6.x86_64.rpm

2、安装jemalloc,库文件可到此链接处下载:ftp-hk.tmapy.cz/fedora/epel/6/x86_64/jemalloc-3.6.0-1.el6.i686.rpm

rpm --nosignature -i http://ftp-hk.tmapy.cz/fedora/epel/6/x86_64/jemalloc-3.6.0-1.el6.x86_64.rpm

#可以去下载合适自己的varnish版本软件包

http://repo.varnish-cache.org/redhat/varnish-4.0/el6/x86_64/varnish/

3、开始安装,

rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-4.0/el6/x86_64/varnish/varnish-4.0.0-1.el6.x86_64.rpm

安装完成后,启动varnish:

service varnish start

HTTP 请求的类型有几种,下面是主要的几种:

GET : 请求指定的页面信息,并返回实体主体。

HEAD: 只请求页面的首部。

POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。

pass和pipe都从后端服务器取数据,它们之间有什么不同呢?

答:当vcl_recv调用 pass 函数时,pass将当前请求直接转发到后端服务器。而后续的请求仍然

通过varnish处理。

例如,建立了HTTP连接之后,客户端顺序请求 a.css 、a.png两个文件,“当前请求”指的是第一个

请求,即a.css,a.css被直接转发到后端服务器,不被缓存。而后续的a.png则再由varnish来做

处理,varnish会判断a.png 如何处理。

总结:一个连接中除了当前请求,其它请求仍然按照正常情况由varnish处理。

而pipe模式则不一样,当vcl_recv判断 需要调用 pipe 函数时,varnish会在客户端和服务器之

间建立一条直接的连接 ,之后客户端的所有请求都直接发送给服务器,绕过varnish,不再由varnish

检查请求,直到连接断开。

Request

1、调用 pass 函数,从后端服务器调用数据。

2、调用 pipe 函数,建立客户端和后端服务器之间的直接连接,从后端服务器调用数据。

3、调用lookup函数,从缓存中查找应答数据并返回,如果查找不到,则调用pass函数从后端服务器

调用数据 。

varnish vcl配置文件:

vcl_recv 接受请求

vcl_hash 缓存策略

vcl_fetch 不缓存

vcl_hit 命中

vcl_miss 未命中

if (req.request !="GET" && req.request != "HEAD" && req.request != "PUT" && req.request != "POST" && req.request !="TRACE" && req.request != "OPTIONS" && req.request != "DELETE") {
return (pipe);
}

#如果不是get和head,那就是post。post属于发送数据给服务器,需要服务器接受数据并处理,属于动态。

if (req.request != "GET" && req.request != "HEAD") {
return (pass);
}

#认证信息

if (req.http.Authorization || req.http.Cookie) {
return (pass);
}
return (lookup);
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return (hash);

#sub vcl_deliver 返回引擎,客户端提示是否命中

sub vcl_deliver {if (obj.hits > 0) {set resp.http.X-Cache = "Hit"; } else {set resp.http.X-Cache = "Miss";}
}

缓存时间的计算方法

缺省的缓存时间计算方法如下:

. 先根椐max-age确定缓存时间

看返回头中的Cache-Control头中,有没有指定s-maxage或max-age信息,另外,如果后端是一个缓存服务器,它还会指定一个age头,表明已经缓存过的时间,这样需要减去age头指定的时间,计算出对应的缓存时间。

例1 只有max-age,没有age

CacheControl: max-age=86400

缓存时间:86400秒,即一天

例2 同时有max-age和age信息

CacheControl: max-age=86400

Age: 6400

缓存时间:86400 - 6400 = 80000秒

转载于:https://blog.51cto.com/215687833/1913365

Varnish 缓存相关推荐

  1. 提高性能的Varnish缓存方案

    转载 http://www.s135.com/post/313/ arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用 ...

  2. 运维企业专题(2)HTTP加速器——Varnish缓存机制后篇(后端服务器集群、负载均衡与CDN推送平台搭建)

    1.实验一:配置后端服务器集群 1)实验目的:定义不同域名站点的后端服务器,通过域名会访问不同的后端主机 2)实验过程: <1>在调度器server1上编写Varnish的配置文件 vim ...

  3. 运维企业专题(1)HTTP加速器——Varnish缓存机制前篇

    1.简介 1)CDN 加速缓存有两种方式Squid与Varnish,为什么选择了Varnish? Varnish是一款高性能的开源HTTP加速器,Varnish的功能与Squid服务器相似,都可以用来 ...

  4. varnish缓存的配置优化(redhat5.4)

    Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好. 但与老牌的squid相比,各有各的优 ...

  5. Varnish缓存代理简介与配置

    一.varnish原理: 1)Varnish简介: varnish缓存是web应用加速器,同时也作为http反向缓存代理.你可以安装varnish在任何http的前端,同时配置它缓存内容.与传统的 s ...

  6. php管理varnish,php实现监控varnish缓存服务器的状态,php监控varnish缓存_PHP教程

    php实现监控varnish缓存服务器的状态,php监控varnish缓存 当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写 ...

  7. varnish 缓存php,php实现监控varnish缓存服务器的状态,php监控varnish缓存

    php实现监控varnish缓存服务器的状态,php监控varnish缓存 当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写 ...

  8. varnish缓存_缓存帽子戏法:Varnish,Memcached和PHP库

    varnish缓存 Previously, we looked at some common caching mechanisms we can easily utilize to make our ...

  9. 深入探讨Varnish缓存命中率

    也许你还在为刚才动态内容获得7336.76 reqs/s的吞吐率感到振奋,等等,理想和现实是有差距的,你要忍受现实的残酷,别忘了,我们压力测试中的动态内容都处于全缓存情况下,也就是每次请求都命中缓存, ...

  10. 测试Varnish缓存服务器与IIS连接数

    测试环境 A服务器:windows2008 B服务器:CentOS+Varnish 不加Varnish的时候直接对IIS进行压力测试,模拟250用户,IIS连接数如下图所示: 前端加一台Varnish ...

最新文章

  1. map.js的编写(js编写一个对象的方式)
  2. busybox在android开发中的应用
  3. ocelot和nginx比较_nginx + ocelot+.net core signalr 关于websocket无法正常握手的问题
  4. 使用cocoapods
  5. 前端---JavaScript基础4
  6. CUDA bank 及bank conflict
  7. 20211110:DC综合的一些简单概念总结(2)
  8. linux中级之HAProxy基础配置
  9. US1MF-ASEMI贴片薄体封装二极管US1M
  10. NewLand手持设备上条码扫描
  11. 【编程题】【Scratch二级】2021.03 寻找宝石
  12. 带头结点单链表的基本使用
  13. UML 之 C++类图关系全面剖析
  14. 游戏解说是咋制作的?怎么给视频添加有趣的剧情配音?
  15. tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)使用介绍
  16. 进销存ERP系统、销售单、采购单、退货单、库存管理、库存盘点、调拨、借入、借出、出库、入库、归还单、收款单、付款单、资金流水、销售报表、采购报表、库存报表、财务报表、商品库、电商erp、连锁erp 1
  17. phpexcel 导出格式,字体调整
  18. 软考程序员复习(二)计算机系统基础知识
  19. Java实现FTP批量大文件上传下载
  20. 毕业论文评审意见、导师意见范文、模板_Smile~风_百度空间

热门文章

  1. 博文视点大讲堂第15期:猎头揭秘
  2. LeetCode经典算法精解-字符串编辑距离
  3. 小程序读取云服务器,小程序读取云服务器
  4. android nexus 6尺寸,谷歌Nexus 6详细配置曝光 原生Android大杀器
  5. 蓝桥杯2016年第七届JavaC组国赛第一题-平方末尾
  6. 解决Ubuntu18.04使用快捷键 Ctrl+Alt+T 无法打开终端的问题
  7. SQL Server-【知识与实战VI】索引信息
  8. Linux系统中设置静态ip地址
  9. OpenCV waitKey 无法正常捕捉方向键(上下左右),总结和解决方案,可以用waitKeyEx...
  10. 创建5个组,然后把30个用户分别加入到5个组中