varnishlog для доступа к телу POST (varnish 4.x)

с запущенным varnishd (varnish-4.1.0, версия 3041728) и ведением журнала с использованием

varnishlog -q "BerespStatus >= 500"

. Я хотел бы знать, можно ли распечатать POST-контент. На сервере работает служба XML-RPC, которая иногда возвращает 500. В журнале ничего нет, поэтому я хотел бы знать, какой метод XMLRPC проблематичен.

Есть предложения?

2
задан 6 November 2015 в 16:40
1 ответ

Varnish (и, следовательно, paintlog & lacnishncsa) не дает доступа к http телу ни в запросе, ни в ответе. Следовательно, это невозможно при использовании ванильного лака.

Сказав это, можно вставить строчный C код в ваш VCL. Таким образом, технически вы можете получить доступ к POST данным, используя какой-нибудь пользовательский C-код и использовать std.log для записи интересующих вас битов в лог.

Похоже, что есть несколько существующих VMOD, которые обращаются к POST данным (например, vmod_bodyaccess), но вам, скорее всего, понадобится сделать больше парсинга, чтобы вытащить XML-RPC метод.

Disclaimer: Я бы не рекомендовал приближаться к встроенному C, если только вы действительно не знаете, что делаете. Кроме того, я не пробовал никаких VMOD, упомянутых здесь, так что не могу сказать, насколько они подходят.

.
0
ответ дан 3 December 2019 в 14:37

Теги

Похожие вопросы