fastly and/or 通用varnish子程序请求流程

fastly and/or general varnish subroutine request flow

So Fastly使用varnish 2.1.5的修改版本

他们不提供子例程请求流程的图表,但 varnish 提供(见下文)。

现在根据下图,只有在 vcl_recv 中执行 lookup 时才会输入 vcl_hash。但据 Fastly 的一位工程师说...

vcl_hash is executed in almost all cases (except if you restart in vcl_recv)

那是哪一个?有谁知道这是一个 Fastly 特定的实现还是只是官方清漆图未指示的东西 and/or 是否有 vcl_* 子例程在另一个子例程完成时 自动 进入?

还有其他 'gotchas' 人知道吗?

我不知道 fastly 但 Varnish 有一个 "default.vcl" ("buildin.vcl" 在以后的版本中)它定义了所有 VCL 方法的默认版本,例如"vcl_recv"。这是 2.1.5 版本:

https://github.com/varnishcache/varnish-cache/blob/varnish-2.1.5/bin/varnishd/default.vcl

现在,如果您不在 "vcl_recv" 中调用 "return"(除非您明确想要 return "pass"、"error" 或"pipe" 在某些情况下)默认 "vcl_recv" 被调用并且它 returns "lookup" 对于所有 GET/HEAD 没有 Cookie 的请求或 Authorization-header 放。