Jak mogę włączyć rejestrowanie żądań przechodzących przez mod proxy?


14

Czy istnieje sposób rejestrowania żądań przechodzących przez mod proxy? Potrzebuję sposobu na debugowanie mojej konfiguracji, ponieważ wydaje mi się, że nie docieram tam, gdzie powinienem być. Potrzebuję następujących informacji:

  • nagłówki przychodzących żądań
  • co jest wysyłane do celu proxy

Może powiązane pytanie: czy istnieje sposób na usunięcie niektórych nagłówków? Próbowałem następujące:

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

Nie wiem, czy to w porządku, bo nic nie widzę.


Użyłbym mitmproxytego rodzaju debugowania.
pisklęta

Odpowiedzi:



10

Użyłem dumpio. Wstawiam następujące /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

Często zapomnianym elementem jest ustawienie LogLevel do debugowania. Bez tego nie zobaczysz żadnego wyjścia DumpIO.

Dane wyjściowe dziennika są zapisywane w dzienniku błędów wirtualnego hosta i / lub serwera.


2
Okazało się to dla mnie bardzo pomocne. Dzięki! Na Ubuntu poszedłem $ a2enmode dump_ioPo tym dodałem wiersze z odpowiedzi do dyrektywy VirtualHost. Sprawdziłem $ tail -f /var/log/apache2/error.logpodczas składania wniosków i otrzymałem wszystkie informacje, których potrzebowałem. Po zakończeniu debugowania lepiej go wyłączyć $ a2dismode dump_ioi przywrócić VirtualHost. W przeciwnym razie otrzymasz bardzo wzdęte kłody.
uKolka

1
Dyrektywa „DumpIOLogLevel” już nie istnieje. Trzeba ustawić LogLevel dumpio:trace7zgodnie z opisem w mod_dumpio
David Tonhofer 10.04.19

4

Jeśli zmienisz LogLevel w celu debugowania, dostarczy ci więcej informacji o tym, co dzieje się w standardowym dzienniku błędów.

LogLevel debug

Otrzymasz mnóstwo informacji o tym, co się dzieje.


1
Mimo że w dzienniku mam sporo dodatkowych informacji na temat serwera proxy, nie ma tam informacji, które chciałbym zobaczyć. Czy korzystając z LogFormat możemy uzyskać informacje, o które prosiłem?
Kariem

1
Baw się z LogFormat, pamiętaj, że możesz użyć mod_forensic i mod_security, aby uzyskać znacznie więcej szczegółów
Decado

W Apache 2.4 dyrektywa LogLevel znajduje się /etc/apache2/apache2.confna Ubuntu. Wydaje się to oczywiste, ale zrozumienie tego zajęło mi sekundę.
Shrout1

2

Możesz także dołączyć proxy:trace5do istniejącej LogLeveldyrektywy

Jeśli masz to

LogLevel error 

Zmień to na to

LogLevel error proxy:trace5

Pamiętaj, aby po użyciu zmienić go z powrotem na normalny. To szybko stworzy ogromne pliki dziennika.


To nie działa w przypadku Apache 2.2, który to pytanie jest oznaczone jako.
Brian Minton

1

mod_security może między innymi rejestrować treść żądania i nagłówki. Połączyć


1
Najlepszą praktyką jest przedstawienie zwięzłego streszczenia. Na dzień 2015-08 link wydaje się martwy ...
mędrzec

-2

Możesz użyć tych dzienników, ale nie dadzą Ci dokładnie tego, czego chcesz:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.