如何在Varnish中的default.vcl中创建自定义函数?

问题描述 投票:1回答:1

我的vcl中有重复的代码,我想创建自定义函数而不嵌入嵌入式C代码。有可能吗?

varnish varnish-vcl
1个回答
5
投票

您可以这样定义一个自定义子例程

sub my_subroutine {
  ... 
}

并这样称呼:

call my_subroutine;

发件人:http://book.varnish-software.com/4.0/chapters/VCL_Basics.html

VCL中的子例程既不接受参数也不返回值。每 子例程通过调用return(action)终止,其中action是一个 指示所需结果的关键字。子例程可以检查 并处理HTTP标头字段以及每个字段的其他各个方面 请求。子例程指示如何处理请求。

子例程示例:

sub pipe_if_local {如果(client.ip〜local){ 返回(管道); }}

要调用子例程,请使用call关键字,后跟 子程序的名称:

致电pipe_if_local;

Varnish具有内置的子例程,这些子例程可以与Varnish挂钩 工作流程。这些内置的子例程都名为vcl_ *。你自己 子例程不能以vcl_开头其名称。

© www.soinside.com 2019 - 2024. All rights reserved.