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 放。
So Fastly使用varnish 2.1.5的修改版本
他们不提供子例程请求流程的图表,但 varnish 提供(见下文)。
现在根据下图,只有在 vcl_recv
中执行 lookup
时才会输入 vcl_hash
。但据 Fastly 的一位工程师说...
vcl_hash
is executed in almost all cases (except if yourestart
invcl_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 放。