Wie kann ich die Protokollierung für Anfragen aktivieren, die über den Mod-Proxy gehen?


14

Gibt es eine Möglichkeit, Anfragen über den Mod-Proxy zu protokollieren? Ich brauche eine Möglichkeit, meine Konfiguration zu debuggen, da ich nicht dahin komme, wo ich sein sollte. Ich benötige folgende Informationen:

  • Header eingehender Anfragen
  • Was wird an das Proxy-Ziel gesendet?

Vielleicht eine verwandte Frage: Gibt es eine Möglichkeit, einige Header zu entfernen? Ich habe folgendes versucht:

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

Ich weiß nicht wirklich, ob das in Ordnung ist, weil ich nichts sehe.


Ich würde mitmproxyfür diese Art von Debugging verwenden.
Küken

Antworten:



10

Ich habe Dumpio benutzt. Ich habe folgendes eingegeben /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

Ein häufig vergessenes Element ist das Debuggen von LogLevel. Ohne diese Option wird keine DumpIO-Ausgabe angezeigt.

Die Protokollausgabe wird in das Fehlerprotokoll für den virtuellen Host und / oder den Server geschrieben.


2
Es hat mir sehr geholfen. Vielen Dank! Auf Ubuntu ging $ a2enmode dump_ioich danach habe ich Zeilen aus der Antwort zu einer VirtualHost-Direktive hinzugefügt. $ tail -f /var/log/apache2/error.logIch habe mich umgesehen, während ich Anfragen gestellt habe, und habe alle Informationen erhalten, die ich brauchte. Nachdem Sie mit dem Debuggen fertig sind, sollten Sie es $ a2dismode dump_iodeaktivieren und den VirtualHost zurücksetzen. Andernfalls erhalten Sie sehr aufgeblähte Protokolle.
UKolka

1
Die Direktive "DumpIOLogLevel" existiert nicht mehr. Man muss Satz LogLevel dumpio:trace7wie beschrieben mod_dumpio
David TONHOFER

4

Wenn Sie LogLevel in Debug ändern, erhalten Sie detailliertere Informationen zu den Vorgängen im Standardfehlerprotokoll.

LogLevel debug

So erhalten Sie viele Informationen darüber, was gerade passiert.


1
Obwohl ich jetzt einige zusätzliche Informationen zum Proxy im Protokoll habe, sind die Informationen, die ich sehen möchte, nicht vorhanden. Können wir mit LogFormat irgendwie die Informationen bekommen, die ich angefordert habe?
Kariem

1
Probieren Sie LogFormat aus. Beachten Sie, dass Sie mit mod_forensic und mod_security viel mehr Details
abrufen können

In Apache 2.4 befindet sich die LogLevel-Direktive in /etc/apache2/apache2.confUbuntu. Scheint offensichtlich, aber ich habe eine Sekunde gebraucht, um das herauszufinden.
Shrout1

2

Sie können auch proxy:trace5an Ihre vorhandene LogLevelDirektive anhängen

Wenn du das hast

LogLevel error 

Ändern Sie es zu diesem

LogLevel error proxy:trace5

Stellen Sie sicher, dass Sie dies nach dem Gebrauch wieder in den normalen Zustand zurücksetzen. Dadurch werden schnell große Protokolldateien erstellt.


Dies funktioniert nicht für Apache 2.2, für das diese Frage markiert ist.
Brian Minton

1

mod_security kann unter anderem Request Body & Header protokollieren. Verknüpfung


1
Es wird empfohlen, eine kurze Zusammenfassung zu erstellen. Ab 2015-08 scheint der Link tot ...
Weise

-2

Sie können diese Protokolle verwenden, aber sie geben Ihnen nicht genau das, was Sie wollen:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.