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
最新文章
- 提取ecshop的mysql类
- Mongo DB 2.6 需要知道的一些自身限定
- cocos2dx 3.1获取系统当前时间
- Android高手速成
- slickedit的alias配置
- SQL Server 2012安装后找不到服务器名称的解决办法!!!
- (视频) 基于HTML5的服务器远程访问工具
- IOS 手势事件的冲突
- linux下tomcat服务的启动、关闭与错误跟踪
- Hadoop教程之编写HelloWorld(2)
- Android Handler 避免内存泄漏的用法总结
- iOS IAP教程
- android 25 跨进程启动activity
- Hibernate 系列教程8-复合主键
- java‘小秘密’系列(一)---String、StringBuffer、StringBuilder
- Python爬虫入门:Cookie的使用
- break和continue的简单介绍
- javascript闭包学习
- office word memo
- Intellij IDEA 导入Maven项目
热门文章
- RISC-V riscv64-unknown-elf
- 使用hibernate利用实体类生成表和利用表生成实体类
- Flutter移动电商实战 --(37)路由_Fluro引入和商品详细页建立
- MongoDB(mongodb-win32-x86_64-enterprise-windows-64-4.2.1-signed.msi)下载,启动和插入数据,查询
- Clock Generator PLL with Integrated VCO_ADF4360-9
- leetcode 79. Word Search 、212. Word Search II
- C之输入输出
- HTM概述
- 使用ffmpeg裁剪和合并视频
- 查看进程的命令ps