我的vcl中有重复的代码,我想创建自定义函数而不嵌入嵌入式C代码。有可能吗?
您可以这样定义一个自定义子例程
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_开头其名称。