Как включить ведение журнала для запросов, проходящих через мод-прокси


14

Есть ли способ регистрировать запросы, проходящие через мод-прокси? Мне нужен способ отладки моей конфигурации, потому что я, кажется, не понимаю, где я должен быть. Мне нужна следующая информация:

  • заголовки входящих запросов
  • что отправляется на цель прокси

Возможно связанный вопрос: есть ли способ удалить некоторые заголовки? Я попробовал следующее:

ProxyPass         /proxy/other http://not.under.my.control/
<Location /proxy/other>
   ProxyPassReverse /
   RequestHeader unset Authorization
</Location>

Я действительно не знаю, нормально ли это, потому что я ничего не вижу.


Я бы использовал mitmproxyдля такого рода отладки.
птенцы

Ответы:


3

Другой вариант может заключаться в том mod_forensic, чтобы легко регистрировать запрос и заголовки и т. Д. Остерегайтесь использования дискового пространства, хотя на веб-сайте с высокой нагрузкой mod_forensic может легко производить десятки гигабайт в день.

http://httpd.apache.org/docs/2.2/mod/mod_log_forensic.html


10

Я использовал дампио. Я положил следующее в /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

Часто забываемая часть - установка LogLevel для отладки. Без этого вы фактически не увидите никакого вывода DumpIO.

Вывод журнала записывается в журнал ошибок для виртуального хоста и / или сервера.


2
Это оказалось довольно полезным для меня. Благодарность! На Ubuntu я пошел $ a2enmode dump_ioПосле этого я добавил строки из ответа на директиву VirtualHost. Проверил, $ tail -f /var/log/apache2/error.logделая запросы и получил всю необходимую мне информацию. После того, как вы закончите с отладкой, лучше выключить ее $ a2dismode dump_ioи вернуть VirtualHost. В противном случае вы получите очень раздутые журналы.
uKolka

1
Директива "DumpIOLogLevel" больше не существует. Нужно установить, LogLevel dumpio:trace7как описано в mod_dumpio
Дэвид Тонхофер

4

Если вы измените LogLevel на отладку, вы получите более подробную информацию о том, что происходит в стандартном журнале ошибок.

LogLevel debug

Это даст вам много информации о том, что происходит.


1
Хотя сейчас у меня есть довольно много дополнительной информации о прокси в журнале, информации, которую я хотел бы видеть, там нет. Используя LogFormat, можем ли мы как-то получить запрошенную информацию?
Карим

1
Поиграйте с LogFormat, обратите внимание, что вы можете использовать mod_forensic и mod_security, чтобы получить гораздо больше деталей
Decado

В Apache 2.4 в Ubuntu есть директива LogLevel /etc/apache2/apache2.conf. Кажется очевидным, но мне потребовалась секунда, чтобы понять это.
Shrout1

2

Вы также можете добавить proxy:trace5к своей существующей LogLevelдирективе

Если у вас есть это

LogLevel error 

Измени это на это

LogLevel error proxy:trace5

Обязательно верните его в нормальное состояние после использования. Это быстро создаст огромные файлы журнала.


Это не работает для Apache 2.2, который помечен как этот вопрос.
Брайан Минтон

1

Помимо всего прочего, mod_security может регистрировать тело и заголовки запросов. Ссылка на сайт


1
Лучшая практика заключается в предоставлении краткого резюме. По состоянию на 2015-08, ссылка кажется мертвой ...
мудрец

-2

Вы можете использовать эти журналы, но они не дадут вам именно то, что вы хотите:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.