varnish 子程序流程

VCL中主要动作:
pass:当一个请求被pass后,这个请求将通过varnish转发到后端服务器,该请求不会被缓
存,后续的请求仍然通过Varnish处理。pass可以放在vcl_recv 和vcl_fetch中。
lookup:当一个请求在vcl_recv中被lookup后,varnish将从缓存中提取数据,如果缓存中
没有数据,将被设置为pass,不能在vcl_fetch中设置lookup。
pipe:pipe和pass相似,都要访问后端服务器,不过当进入pipe模式后,在此连接未
关闭前,后续的所有请求都直接发到后端服务器,不经过Varnish的处理。
deliver:请求的目标被缓存,然后发送给客户端
hit_for_pass:表示直接从后台获取数据,会创建一个hit_for_pass的对象,该对象的TTL
值将会被设置成beresp.ttl的当前值。用来控制vcl_deliver如何处理当前的请求,
后续的请求会直接vcl_pass,可在vcl_fetch中用
fetch:从后端服务器获取请求目标,控制权转交给vcl_fetch。
hash:进入Hash模式
restart:重启本次事务,重新返回给vcl_recv,如果重启次数超过了max_restarts报错
ok:表示正常
error:表示错误
VCL中,有3个重要的数据结构
req:
请求目标,当varnish接收到一个请求,这时req object就被创建了,在vcl_recv中的大部分工作,都是在req object上展开的。
- client.ip:客户端IP
- req.request:请求类型,例如”GET”,”HEAD”
- req.url:请求的URL
- req.backend:使用哪个后端服务器为这个请求提供服务
- req.backend.healthy:后端服务器是否健康
- req.http.header:对应的HTTP头
- req.grace:设置对象被保持的时间
beresp:
后端服务器返回的目标,它包含返回的头信息,在vcl_fetch中的大部分工作都是在beresp object上开展的。
- bereq.request:请求的类型(如 "GET", "HEAD")
- bereq.url:请求的url
- bereq.http.header:请求的HTTP header
- beresp.do_gzip:是否在存储前Gzip压缩
- beresp.do_gunzip:是否在存储前解压缩
- beresp.http.header:HTTP header
- beresp.status:HTTP的状态码
- beresp.ttl:对象保存的时间
- beresp.grace:对象grace保存的时间
obj:
被cache的目标,只读的目标被保存于内存中,obj.ttl的值可修改,其他的只能读。
- obj.status :服务器返回的HTTP状态码
- obj.ttl:目标的剩余生存时间,以秒为单位
- obj.grace:对象grace的存活时间
- obj.http.header:Http header
varnish 子程序流程的更多相关文章
- Varnish的VCL
Varnish的子进程 VCL Varnish配置语言VCL是一种"域"专有类型的配置语言,用于描述Varnish Cache的请求处理和文档高速缓存策略. 当加载新配置时,Man ...
- varnish4.0缓存代理配置
防伪码:你必须非常努力,才能看起来毫不费力. 一.varnish原理: 1)Varnish简介: varnish缓存是web应用加速器,同时也作为http反向缓存代理.你可以安装varnish在任何h ...
- 基于ATmgea8单片机设计的加热控制系统(转)
源:http://blog.163.com/zhaojun_xf/blog/static/3005058020085102562729/ 1 引言 温度是工业生产中主要的被控参数之一,与之相关的各种温 ...
- 高性能HTTP加速器Varnish-3.0.3搭建、配置及优化步骤
经过一天的努力,终于将Varnish缓存服务器部署到线上服务器了.趁着热乎劲儿,赶紧给大家分享一下.Varnish是一个轻量级的Cache和反向代理软件.先进的设计理念和成熟的设计框架是Varnish ...
- Varnish的vcl子程序
Varnish的VCL子程序 以下内容参考: http://book.varnish-software.com/4.0/ VCL子进程,在其中定制Varnish的行为.VCL子例程可用于:添加自定义标 ...
- 7.4 Varnish VCL的子程序
- 关于varnish缓存
目录 缓存的概念 一.varnish缓存 1. 简介 2. 总体结构 2.1 两个主进程 2.1.1 Management进程 2.1.2 Child/Cacher进程 2.2 Varnish的日志收 ...
- 软件开发流程 Software development process
软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...
- varnish 隐藏版本号
varnish 隐藏方法: 修改default.vcl配置文件. 找到或添加 vcl_deliver 子程序,代码如下: 1 2 3 4 5 sub vcl_deliver { unse ...
随机推荐
- 牛顿法与拟牛顿法(三) DFP算法
转自 https://blog.csdn.net/itplus/article/details/21896981
- 黑马在线教育项目---34-37、webuploader实现用户头像的异步上传
黑马在线教育项目---34-37.webuploader实现用户头像的异步上传 一.总结 一句话总结: 启迪:可以多看学习视频,在看电影看电视的时候看的确是不错的选择 1.关于软件的发行版本? 第1阶 ...
- Flutter移动电商实战 --(26)列表页_使用Provide控制子类-2
主要实现功能,点击一级分类,二级分类跟着变.这里主要用我们的provide 新建provide provide文件夹下创建:child_category.dart 事件上就是这个实体:BxMallSu ...
- mod 运算与乘法逆元
mod 运算与乘法逆元 %运算 边乘边mod 乘法 除法 mod 希望计算5/2%7=6 乘法 除法 mod 希望计算5/2%7=6 两边同时/x 在取mod(p)运算下,a/b=a*bp-2 bp- ...
- 【matlab】模拟变焦拼接代码备份
1.初版,边缘未处理. % % In----near % If----far % In=imread('D:\文件及下载相关\桌面\模拟变焦拼接\Matlab_code\nearframe\frame ...
- 《maven实战》笔记(4)----maven的仓库
maven的构件表示方式是文件,maven通过仓库来统一管理这些文件. maven仓库的布局方式: 任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径 仓库分为两类:本地仓库和 ...
- Java同步数据结构之ConcurrentLinkedDeque
前言 由于LinkedBlockingDeque作为双端队列的实现,采用了单锁的保守策略使其不利于多线程并发情况下的使用,故ConcurrentLinkedDeque应运而生,它是一种基于链表的无界的 ...
- Android 自定义AlertDialog退出对话框
Android 自定义AlertDialog退出对话框 转 https://blog.csdn.net/wkh11/article/details/53081634在项目中很多时候会出现点击返回键出现 ...
- mac 查看隐藏文件及快速打开终端
查看隐藏文件: 1.在目标目录打开终端,然后输入ls -al命令快速查看目标目录下的文件(包括隐藏文件) 2.快捷键shift+cmmand+.(显示或者隐藏) 打开终端方式: 1.设置组合快捷键,单 ...
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...