【问题标题】:How to create custom function in default.vcl within Varnish?如何在 Varnish 中的 default.vcl 中创建自定义函数?
【发布时间】:2016-04-29 15:54:51
【问题描述】:

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

【问题讨论】:

    标签: varnish varnish-vcl


    【解决方案1】:

    您可以像这样定义自定义子例程

    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 { if (client.ip ~ local) { 返回(管道); } }

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

    调用 pipe_if_local;

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

    【讨论】:

      猜你喜欢
      • 2011-01-07
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 2022-01-19
      • 2015-04-02
      • 2016-02-24
      相关资源
      最近更新 更多