Varnish加工状态

引言

客户端和后端请求的Varnish处理被实现为状态机。无论何时进入状态,都会调用一个C函数,该函数又会调用适当的Varnish核心代码函数来处理该阶段的请求或响应。对于大多数状态,核心代码还会调用从VCL编译的状态特定函数,即VCL子例程(请参见 VCL步骤 )。

通常,核心代码的目的是在调用相应的VCL子例程之前,为最常见的情况准备可从VCL访问的对象,这些对象具有良好的缺省值。然后,可以在必要时从VCL修改这些参数。

下面的图表试图提供关于处理状态、它们的转换以及核心代码中最相关的函数的概述。它们代表了对核心/VMOD开发人员和管理员的有用性之间的折衷,并旨在作为派生工作的参考基础,例如更多以VCL为中心的视图。

客户端

../_images/cache_req_fsm.svg

后端

../_images/cache_fetch.svg