Мне нужно взглянуть на все заголовки определенных запросов. Я читал руководство по haproxy, я могу использовать захват для регистрации любого заголовка, который я ЗНАЮ там.
Но я хотел бы видеть ВСЕ заголовки, неизвестные мне, которые получает приложение. Возможно ли это с опциями ведения журнала haproxy? Какой-то метод регулярного выражения или итераций?
Я использую haproxy 1.6
Спасибо.
Вы регистрируете известные заголовки с помощью директивы capture request header
, но HAproxy 1.6 вводит новую директиву, синтаксис http-request capture
.
http-request capture
:[ len | id ]
:
. захватывает из буфера запроса выражение-образеци преобразует до строки, состоящей максимум из
символов. В результате получилась строка хранится в следующем слоте запроса "захват", так что он, возможно, будет выглядеть как рядом с некоторыми захваченными HTTP-заголовками. Затем он автоматически появится в журналы, и его можно будет извлечь, используя правила выборки образцов. чтобы скормить его в заголовки или еще что-нибудь. Длина должна быть ограничена что этот размер будет выделяться для каждого захвата в течение всего времени жизнь сеанса. Пожалуйста, ознакомьтесь с разделом 7.3 (Захват образцов) и "Захват". request header" для дополнительной информации.
который, я думаю, можно настроить на использование регексных выражений как
Попробуйте использовать (в /etc/haproxy/haproxy.cfg):
frontend my_frontend
mode http
option httplog
http-request capture req.hdrs len 512
log-format "%ci:%cp [%tr] %ft [[%hr]] %hs %{+Q}r"
req.hdrs
- возвращает текущие заголовки запроса в виде строки, включая последнюю пустую строку, отделяющую заголовки от тела запроса.
%hr
- печатает захваченные заголовки запроса
Надеюсь, это поможет.