根据我的理解,通过查看Varnish 管道图,vcl_pipe
只能调用 from vcl_recv
。
我正在设置一个 VCL,以便根据某些条件(包括访问控制)从后端提供二进制资源。
到目前为止,我想到的设置方式是:检查我所有的检查,包括搬出vcl_recv
;如果为流式传输资源设置了条件,则设置一个标志;重新开始交易;首先检查标志vcl_recv
,如果设置,调用vcl_pipe
。
唯一的主要问题是我不知道如何设置http.request
一个请求标头无法伪造的标志(例如 in )。因此,了解我的 VCL 的调用者可以轻松设置管道标志并绕过所有检查。
另一种选择是保留所有检查,vcl_recv
但这可能很笨重,甚至是不可能的。
建议将不胜感激。谢谢。