文档章节

varnish 4.0 官方文档翻译14-Built in subroutines

wild-life
 wild-life
发布于 2015/06/15 18:45
字数 1991
阅读 185
收藏 3

Built in subroutines

vcl_recv

在接收到完整的客户端请求后调用这个子程序。它决定是否处理请求,怎样处理请求,使用哪一个后端。

它也可运用于修改请求,一些经常自己做的事情。

vcl_recv子程序可以通过调用return()来结束,通过以下关键字:

synth(status code, reason)
    Return a synthetic object with the specified status code to the client and abandon the request.
    返回一个人为对象使用指定的状态码给客户端或者放弃请求。
pass
    Switch to pass mode. Control will eventually pass to vcl_pass.
    处理跳转到vcl_pass
pipe
    Switch to pipe mode. Control will eventually pass to vcl_pipe.
    处理跳转到vcl_pipe
hash
    Continue processing the object as a potential candidate for caching. Passes the control over to vcl_hash.
    处理跳转到vcl_hash,在缓存中查找对象,如果有则为命中,
purge
    Purge the object and it's variants. Control passes through vcl_hash to vcl_purge.
    删除对象和它的变体。控制pass通过vcl_hash到vcl_purge

vcl_pipe

在进入pipe模式时被调用。将请求直接传递至后端主机,并将后端响应原样返回客户端

vcl_pipe子程序可以通过调用return()来结束,通过以下关键字:

synth(status code, reason)
    Return a synthetic object with the specified status code to the client and abandon the request.
    返回一个人为对象使用指定的状态码给客户端或者放弃请求。
pipe
    Proceed with pipe mode.
    使用pip模式处理

vcl_pass

此函数在进入pass模式时被调用,用于将请求直接传递至后端主机,但后端主机的响应并不缓存直接返回客户端;

vcl_pass子程序可以通过调用return()来结束,通过以下关键字:

synth(status code, reason)
    Return a synthetic object with the specified status code to the client and abandon the request.
    返回一个人为对象使用指定的状态码给客户端或者放弃请求。
fetch
    Proceed with pass mode.
    继续pass模式
restart
    Restart the transaction. Increases the restart counter. If the number of restarts is higher than max_restarts Varnish emits a guru meditation error.
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。

vcl_hit

在执行 lookup 指令后,在缓存中找到请求的内容后将自动调用该函数;

vcl_hit子程序可以通过调用return()来结束,通过以下关键字:

restart
    Restart the transaction. Increases the restart counter. If the number of restarts is higher than max_restarts Varnish emits a guru meditation error.
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。
deliver
    Deliver the object. Control passes to vcl_deliver.
    传递对象,使用vcl_deliver处理。
synth(status code, reason)
    Return a synthetic object with the specified status code to the client and abandon the request.
    返回一个人为对象使用指定的状态码给客户端或者放弃请求。

vcl_miss

在执行 lookup 指令后,在缓存中没有找到请求的内容时自动调用该方法,此函数可用于判断是否需要从后端服务器获取内容,从哪一个后端获取内容;

vcl_miss子程序可以通过调用return()来结束,通过以下关键字:

synth(status code, reason)
    Return a synthetic object with the specified status code to the client and abandon the request.
    返回一个人为对象使用指定的状态码给客户端或者放弃请求。
pass
    Switch to pass mode. Control will eventually pass to vcl_pass.
    处理跳转到vcl_pass
fetch
    Retrieve the requested object from the backend. Control will eventually pass to vcl_backend_fetch.
    从后端获取请求对象。控制最终传递到vcl_backend_fetch。
restart
    Restart the transaction. Increases the restart counter. If the number of restarts is higher than max_restarts Varnish emits a guru meditation error.
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。

vcl_hash

在vcl_recv调用后为请求创建一个hash值时,调用此函数;此hash值将作为varnish中搜索缓存对象的key;

vcl_hash子程序可以通过调用return()来结束,通过以下关键字:

lookup
    Look up the object in cache. Control passes to vcl_miss, vcl_hit or vcl_purge.
    从缓存中查找对象。控制传递至vcl_miss, vcl_hit 或者 vcl_purge.

vcl_purge

pruge操作执行后调用此函数,所有他的变种将被回避;

vcl_purge子程序可以通过调用return()来结束,通过以下关键字:

synth(status code, reason)
    Return a synthetic object with the specified status code to the client and abandon the request.
    返回一个人为对象使用指定的状态码给客户端或者放弃请求。
restart
    Restart the transaction. Increases the restart counter. If the number of restarts is higher than max_restarts Varnish emits a guru meditation error.
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。

vcl_deliver

将在缓存中找到请求的内容发送给客户端前调用此方法;

vcl_deliver子程序可以通过调用return()来结束,通过以下关键字:

deliver
    Deliver the object to the client.
    传递对象给客户端。
restart
    Restart the transaction. Increases the restart counter. If the number of restarts is higher than max_restarts Varnish emits a guru meditation error.
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。

vclbackendfetch

向后端主机发送请求前,调用此函数,可修改发往后端的请求;

vclbackendfetch子程序可以通过调用return()来结束,通过以下关键字:

fetch
    Fetch the object from the backend.
    从后端获取对象
abandon
    Abandon the backend request and generates an error.
    丢弃后端请求,同时生成一个错误页面。

vclbackendresponse

获得后端主机的响应后,可调用此函数;

vclbackendresponse子程序可以通过调用return()来结束,通过以下关键字:

deliver
    Possibly insert the object into the cache, then deliver it to the Control will eventually pass to vcl_deliver.
    可以将对象插入到缓存,然后传递它到控制器,最终传递到vcl_deliver。
abandon
    Abandon the backend request and generates an error.
    丢弃后端请求,同时生成一个错误页面。
retry
    Retry the backend transaction. Increases the retries counter. If the number of retries is higher than max_retries Varnish emits a guru meditation error.    
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。

vclbackenderror

当从后端主机获取源文件失败时,调用此函数;

vclbackenderror子程序可以通过调用return()来结束,通过以下关键字:

deliver
    Deliver the error.
    传递错误页面
retry
    Retry the backend transaction. Increases the retries counter. If the number of retries is higher than max_retries Varnish emits a guru meditation error.
    重新启动事务。增加了重新启动计数器。如果重新启动的次数比max_restarts高,varnish将返回权威的默认错误。

vcl_synth

调用是返回一个定义的的对象,定义的对象在VCL中生成,不是从后端获取。典型就是使用synthetic()函数;

vcl_synth子程序可以通过调用return()来结束,通过以下关键字:

deliver
    Deliver the object. If the object has a positive TTL then the object is also stored in cache.
    传递对象,如果对象设置了TTL,该对象还会存储如缓存中。
restart
    Restart processing the object.
    重新启动对对象的处理。

vcl_init

VCL加载时调用此函数,经常用于初始化varnish模块(VMODs);

vcl_init子程序可以通过调用return()来结束,通过以下关键字:

ok
    Normal return, VCL continues loading.
    正常返回,VCL继续加载。

vcl_fini

当所有请求都离开当前VCL,且当前VCL被弃用时,调用此函数,经常用于清理varnish模块;

vcl_init子程序可以通过调用return()来结束,通过以下关键字:

ok
    Normal return, VCL will be discarded.
    正常返回,VCL将不再使用。


© 著作权归作者所有

共有 人打赏支持
wild-life
粉丝 16
博文 94
码字总数 56147
作品 0
成都
技术主管
varnish 4.0 官方文档翻译4-varnish用户手册概况

The Varnish Users Guide varnish用户手册 varnish 文档包含三个主要的文档: The Varnish Tutorial 解释一些基本的东西让你开始使用varnish The Varnish Users Guide 说明varnish怎样工作以...

wild-life
2015/05/09
0
0
varnish 4.0 官方文档翻译13-VCL Syntax

VCL Syntax varnish从C继承了很多,同时它读起来像简单的C或者是Perl。 块由大括号分隔,语句用分号结束,注释可以根据自己的喜好来写为C,C ++或Perl的注释。 注意VCL不包含任何循环和跳转语...

wild-life
2015/06/15
0
0
varnish 4.0 官方文档翻译1-管理员文档

varnish 管理员文档 varnish缓存是web应用加速器,同时也作为http反向缓存代理被人熟知。你可以安装varnish在任何http的前端,同时配置它缓存内容。varnish真的很快,单个代理的分发速度可以...

wild-life
2015/05/09
0
0
varnish 4.0 官方文档翻译12-VCL

VCL - Varnish Configuration Language 本节包含了怎样通过varnish配置语言vcl来通知varnish如何处理http请求。 varnish是高度结构化的系统。大多数其他的系统使用配置指令,在那里你基本上打...

wild-life
2015/06/15
0
0
varnish 4.0 官方文档翻译3-简要教程

varnish 4.0简要教程 这部分教程包含了varnish基本原理。囊括了什么是varnish、它怎样工作,同时也包含了开始使用和运行varnish。这部分过后你可能想继续了解用户向导(varnish用户引导)。 如...

wild-life
2015/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

中秋快乐!!!

HiBlock
20分钟前
0
0
Node安装教程

1、安装最新版的node 2、设置相关目录(以D盘为例) 分别建立目录:D:\node,D:\node\node-globa,D:\node\node-cache 命令行输入: // 设置npm国内镜像 npm config set registry https://re...

Mohan710
48分钟前
1
0
中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
今天
3
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
今天
2
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部