Я думаю, что было бы полезно прочитать документы для vmod: https://github.com/varnishcache/varnish-cache/blob/master/doc/sphinx/reference/vmod.rst Из документов:
PRIV_CALL "per call" частные указатели полезны для кэширования / сохранения состояния относительно вызова спецификаций c или его аргументов, например, скомпилированного регулярного выражения, задающего c для оператора regsub (), или просто для кэширования самого последнего вывода какой-либо дорогостоящей операции. Эти частные указатели действуют в течение загруженного VCL.
PRIV_TASK Частные указатели «на задачу» полезны для состояния, которое применяется к вызовам либо для конкретного запроса c, либо к бэкэнду запрос. Например, это может быть результатом синтаксического анализа ie специфика c для клиента. Обратите внимание, что контексты PRIV_TASK являются отдельными для клиентской стороны и серверной части, поэтому использование в vcl_backend_ * приведет к тому, что частный указатель будет отличаться от того, который используется на стороне клиента. Эти частные указатели действуют только на время выполнения своей задачи.
PRIV_TOP Частные указатели «на верхний запрос» действуют на время одного запроса и всех его ESI-включений. Они определены только для клиентской стороны. При использовании от внутренних подпрограмм VCL указатель NULL будет передан. Эти частные указатели действуют только на время запроса верхнего уровня.
PRIV_VCL "per vcl" частные указатели полезны для такого глобального состояния, которое применяется ко всем вызовам в этом VCL, например флаги которые определяют, являются ли регулярные выражения чувствительными к регистру в этом vmod или аналогичном. Объект PRIV_VCL - это тот же объект, который передается в функцию события VMOD. Этот частный указатель действует в течение всего времени загрузки загруженного VCL.
Я бы, вероятно, сказал, что если вы будете sh отслеживать хост на стороне клиента, то для этого вам нужно использовать priv_task Вы ищете.