Реєстрація всього тіла POST за допомогою HAProxy?


12

Я намагаюся виявити деякі проблеми з тим, як клієнт JavaScript взаємодіє з сервером додатків, і хотів би бачити весь http корисний вантаж (заголовки, тіло та все), які передаються вперед і назад.

Так трапляється, що перед сервером додатків вже є haproxy-сервер, тому я сподівався використати haproxy для надання відповідних журналів. Очевидно, це було б погано включати виробництво, але у мене є клон всього середовища, яке можна виділити, поки я роблю це налагодження.

Чи є спосіб отримати haproxy для реєстрації всього http-корисного навантаження для POST-запитів, що надходять на певний сервер?

Відповіді:


3

Haproxy не має можливості реєструвати вміст POST або тела HTTP.

Замість цього використовуйте Wireshark.


Спасибі. Зрештою, я зможу побачити POST у інструментах для розробників chrome.
Пітер Гроув

Це вже не так. Дивіться публікацію hack_on нижче.
ПМВ

18

Мабуть, з версії 1.6.0 (жовтень 2015 року) ви можете зараз. Існує нова директива:

option http-buffer-request

Що ви включаєте в передній або задній, щоб надати HAProxy доступ до тіла. І ви використовуєте req.body для доступу до нього. Ось підсумок конфігурації, яку я використав:

global
        log     127.0.0.1 local0
        debug
        maxconn 2048
        ulimit-n 8012
#        ...

defaults
    mode http
    option httplog
    log-format frontend:%f/%H/%fi:%fp\ GMT:%T\  body:%[capture.req.hdr(0)]\ request:%r
    option dontlognull
#   ...

frontend www-http
   log global
   option http-buffer-request
# id=0 to store body for logging
   declare capture request len 40000
   bind 7.7.7.7:8007 
   http-request capture req.body id 0

   default_backend www-backend

backend www-backend
    mode http
    option forwardfor
#   ...

Привіт, чи є спосіб увімкнути цей req.body в інший файл, а не той самий haproxy.log за замовчуванням?
Шойб Хан

Привіт. Як записати орган запиту та відповіді в один файл журналу?
Юрій Тигієв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.