Может ли haproxy записывать неизвестные заголовки?

Мне нужно взглянуть на все заголовки определенных запросов. Я читал руководство по haproxy, я могу использовать захват для регистрации любого заголовка, который я ЗНАЮ там.

Но я хотел бы видеть ВСЕ заголовки, неизвестные мне, которые получает приложение. Возможно ли это с опциями ведения журнала haproxy? Какой-то метод регулярного выражения или итераций?

Я использую haproxy 1.6

Спасибо.

2
задан 29 September 2016 в 10:52
2 ответа

Вы регистрируете известные заголовки с помощью директивы capture request header , но HAproxy 1.6 вводит новую директиву, синтаксис http-request capture .

http-request capture [ len | id ] :
:
. захватывает из буфера запроса выражение-образец и преобразует до строки, состоящей максимум из символов. В результате получилась строка хранится в следующем слоте запроса "захват", так что он, возможно, будет выглядеть как рядом с некоторыми захваченными HTTP-заголовками. Затем он автоматически появится в журналы, и его можно будет извлечь, используя правила выборки образцов. чтобы скормить его в заголовки или еще что-нибудь. Длина должна быть ограничена что этот размер будет выделяться для каждого захвата в течение всего времени жизнь сеанса. Пожалуйста, ознакомьтесь с разделом 7.3 (Захват образцов) и "Захват". request header" для дополнительной информации.

который, я думаю, можно настроить на использование регексных выражений как

1
ответ дан 3 December 2019 в 12:38

Попробуйте использовать (в /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 - печатает захваченные заголовки запроса

Надеюсь, это поможет.

1
ответ дан 30 October 2020 в 14:45

Теги

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