Доступ к телу ответа сервера в Varnish VCL

Мой VCL-код Varnish должен сделать простой запрос GET в бэкэнд-систему и решить, доступен ли запрошенный ресурс или нет. К сожалению, бэкэнд-система всегда возвращает 200, и я должен изучить фактическое тело ответа, чтобы принять решение.

Есть ли способ получить доступ к телу ответа (объемом менее 1 КБ) в VCL и выполнить поиск по подстроке?

Я пытаюсь избежать реализации прокси-службы только для этой функции.

PS На данный момент я должен придерживаться Varnish 2.1 (быстро)

3 ответа

Решение

Быстрый ответ: нет. Varnish от Fastly сильно отличается от основной линии, поэтому вы в основном застряли на том, что они предоставляют, и анализ тела ответа не является частью этого.

Внутренние компоненты Varnish 6.0 и 6.1 облегчают его сборку, но на данный момент необходимый вам vmod (xbody) доступен только в качестве коммерческого продукта.

Уже давно есть способ: вы можете использовать.match_body()метод объектов регулярных выражений, предоставляемый vmod_re.

С лаком вам, вероятно, следует использовать внешние vmods для этого.

Версия с открытым исходным кодом: доступ к телу в https://github.com/varnish/varnish-modules.

Программное обеспечение Varnish/Entrprise: https://docs.varnish-software.com/varnish-enterprise/vmods/xbody/

Другие вопросы по тегам