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.

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

Antworten:

3

Eine andere Möglichkeit könnte sein mod_forensic, die Anfrage und die Header usw. einfach zu protokollieren. Beachten Sie jedoch, dass mod_forensic auf einer Website mit hoher Auslastung problemlos Dutzende von Gigs pro Tag produzieren kann.

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

HampusLi
quelle
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.

GuyPaddock
quelle
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.

Decado
quelle
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.

Yunzen
quelle
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

ggiroux
quelle
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>
Popinou
quelle