с запущенным varnishd (varnish-4.1.0, версия 3041728) и ведением журнала с использованием
varnishlog -q "BerespStatus >= 500"
. Я хотел бы знать, можно ли распечатать POST-контент. На сервере работает служба XML-RPC, которая иногда возвращает 500. В журнале ничего нет, поэтому я хотел бы знать, какой метод XMLRPC проблематичен.
Есть предложения?
Varnish (и, следовательно, paintlog & lacnishncsa) не дает доступа к http телу ни в запросе, ни в ответе. Следовательно, это невозможно при использовании ванильного лака.
Сказав это, можно вставить строчный C код в ваш VCL. Таким образом, технически вы можете получить доступ к POST данным, используя какой-нибудь пользовательский C-код и использовать std.log для записи интересующих вас битов в лог.
Похоже, что есть несколько существующих VMOD, которые обращаются к POST данным (например, vmod_bodyaccess), но вам, скорее всего, понадобится сделать больше парсинга, чтобы вытащить XML-RPC метод.
Disclaimer: Я бы не рекомендовал приближаться к встроенному C, если только вы действительно не знаете, что делаете. Кроме того, я не пробовал никаких VMOD, упомянутых здесь, так что не могу сказать, насколько они подходят.
.