¿Cómo puedo habilitar el registro de solicitudes que pasan por Mod Proxy?


14

¿Hay alguna manera de registrar las solicitudes pasando por el proxy proxy? Necesito una forma de depurar mi configuración, porque parece que no estoy llegando a donde debería estar. Necesito la siguiente información:

  • encabezados de solicitudes entrantes
  • lo que se envía al destino proxy

Tal vez una pregunta relacionada: ¿hay alguna manera de quitar algunos encabezados? Intenté lo siguiente:

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

Realmente no sé si esto está bien, porque no veo nada.


Lo usaría mitmproxypara este tipo de depuración.
polluelos

Respuestas:



10

Yo solía dumpio. Puse lo siguiente en /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

Una pieza a menudo olvidada es configurar LogLevel para depurar. Sin él, en realidad no verá ninguna salida DumpIO.

La salida del registro se escribe en el registro de errores para el host virtual y / o el servidor.


2
Resultó bastante útil para mí. ¡Gracias! En Ubuntu fui $ a2enmode dump_ioDespués de eso, agregué líneas de la respuesta a una directiva VirtualHost. Revisé $ tail -f /var/log/apache2/error.logmientras hacía solicitudes y obtuve toda la información que necesitaba. Una vez que haya terminado con la depuración, es mejor apagarlo $ a2dismode dump_ioy revertir VirtualHost. De lo contrario, obtendrá registros muy hinchados.
uKolka

1
La directiva "DumpIOLogLevel" ya no existe. Uno tiene que configurar LogLevel dumpio:trace7como se describe en mod_dumpio
David Tonhofer

4

Si cambia LogLevel para depurar, le dará más detalles sobre lo que está sucediendo en el registro de errores estándar.

LogLevel debug

Eso le dará mucha información sobre lo que está sucediendo.


1
Aunque ahora tengo bastante información adicional sobre el proxy en el registro, la información que me gustaría ver no está allí. Con LogFormat, ¿podemos obtener de alguna manera la información que solicité?
Kariem

1
Juegue con LogFormat, tenga en cuenta que puede usar mod_forensic y mod_security para obtener muchos más detalles
Decado

En apache 2.4, la directiva LogLevel está en /etc/apache2/apache2.confUbuntu. Parece obvio, pero me tomó un segundo darme cuenta.
Shrout1

2

También puede adjuntar proxy:trace5a su LogLeveldirectiva existente

Si tienes esto

LogLevel error 

Cámbialo a esto

LogLevel error proxy:trace5

Asegúrese de cambiarlo a la normalidad después del uso. Esto creará enormes archivos de registro rápidamente.


Esto no funciona para apache 2.2, que esta pregunta está etiquetada como.
Brian Minton

1

mod_security puede registrar el cuerpo y los encabezados de las solicitudes, entre otras cosas. Enlace


1
La mejor práctica es proporcionar un resumen conciso. A partir de 2015-08, el enlace parece estar muerto ...
sabio

-2

Puede usar estos registros, pero no le darán exactamente lo que desea:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.