Comment puis-je activer la journalisation des demandes passant par le proxy mod

14

Existe-t-il un moyen de consigner les demandes via le proxy mod? J'ai besoin d'un moyen de déboguer ma configuration, car je ne semble pas arriver là où je devrais être. J'ai besoin des informations suivantes:

  • en-têtes des demandes entrantes
  • ce qui est envoyé à la cible proxy

Peut-être une question connexe: existe-t-il un moyen de supprimer certains en-têtes? J'ai essayé ce qui suit:

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

Je ne sais pas vraiment si ça va, parce que je ne vois rien.

Kariem
la source
J'utiliserais mitmproxypour ce genre de débogage.
poussins

Réponses:

3

Une autre option pourrait être mod_forensic, peut facilement enregistrer la demande et les en-têtes, etc. Attention toutefois à l'utilisation de l'espace disque, sur un site Web à forte charge, mod_forensic peut facilement produire des dizaines de concerts par jour.

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

HampusLi
la source
10

J'ai utilisé du dumpio. Je mets ce qui suit dans /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

Une pièce souvent oubliée définit le LogLevel pour le débogage. Sans cela, vous ne verrez aucune sortie DumpIO.

La sortie du journal est écrite dans le journal des erreurs de l'hôte virtuel et / ou du serveur.

GuyPaddock
la source
2
Cela s'est avéré très utile pour moi. Merci! Sur Ubuntu, je suis allé $ a2enmode dump_ioaprès que j'ai ajouté des lignes de la réponse à une directive VirtualHost. $ tail -f /var/log/apache2/error.logJ'ai vérifié le tout en faisant des demandes et j'ai obtenu toutes les informations dont j'avais besoin. Une fois le débogage terminé, il est préférable de le désactiver $ a2dismode dump_ioet de rétablir le VirtualHost. Sinon, vous obtiendrez des journaux très gonflés.
uKolka
1
La directive "DumpIOLogLevel" n'existe plus. Il faut régler LogLevel dumpio:trace7comme décrit dans mod_dumpio
David Tonhofer
4

Si vous changez LogLevel pour déboguer, cela vous donnera plus de détails sur ce qui se passe dans le journal des erreurs standard.

LogLevel debug

Cela vous donnera beaucoup d'informations sur ce qui se passe.

Decado
la source
1
Bien que j'ai maintenant un peu d'informations supplémentaires sur le proxy dans le journal, les informations que j'aimerais voir ne sont pas là. En utilisant LogFormat, pouvons-nous en quelque sorte obtenir les informations que j'ai demandées?
Kariem
1
Jouez avec LogFormat, notez que vous pouvez utiliser mod_forensic et mod_security pour obtenir beaucoup plus de détails
Decado
Dans apache 2.4, la directive LogLevel est /etc/apache2/apache2.confsur Ubuntu. Cela semble évident, mais il m'a fallu une seconde pour le comprendre.
Shrout1
2

Vous pouvez également ajouter proxy:trace5à votre LogLeveldirective existante

Si vous en avez

LogLevel error 

Changez-le en ceci

LogLevel error proxy:trace5

Assurez-vous de revenir à la normale après utilisation. Cela créera rapidement d'énormes fichiers journaux.

yunzen
la source
Cela ne fonctionne pas pour apache 2.2, cette question est étiquetée comme.
Brian Minton
1

mod_security peut enregistrer le corps et les en-têtes des requêtes, entre autres. Lien

ggiroux
la source
1
La meilleure pratique consiste à fournir un résumé concis. Depuis 2015-08, le lien semble mort ...
sage
-2

Vous pouvez utiliser ces journaux, mais ils ne vous donneront pas exactement ce que vous voulez:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
Popinou
la source