28

Is there a way to log requests going through mod proxy? I need a way to debug my configuration, because I don't seem to be getting where I should be. I need the following information:

  • headers of incoming requests
  • what is being sent to the proxy target

Maybe a related question: is there a way to strip some headers? I tried the following:

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

I don't really know whether this is ok, because I don't see anything.

chicks
  • 3,915
  • 10
  • 29
  • 37
Kariem
  • 591

6 Answers6

18

Try dumpio

I used dumpio. I put the following in /etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On DumpIOOutput On DumpIOLogLevel debug

LogLevel debug

An often forgotten piece is setting the LogLevel to debug. Without it, you won't actually see any DumpIO output.

The log output is written to the error log for the virtual host and/or the server.

15

You can also append proxy:trace5 to your existing LogLevel directive

If you have this

LogLevel error 

Change it to this

LogLevel error proxy:trace5

Be sure to change that back to normal after use. This will create huge log files fast.

yunzen
  • 405
6

If you change LogLevel to debug it'll give you more detail about what's going on in the standard Error log.

LogLevel debug

That'll get you plenty of information about what's happening.

Decado
  • 1,949
5

Another option might be mod_forensic, can easily log the request and headers etc. Beware of disk space usage though, on a heavy load web-site mod_forensic can easily produce tens of Gigs per day.

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

HampusLi
  • 3,508
3

mod_security can log request body & headers, among other things. Link

ggiroux
  • 254
-3

You can use these logs, but they won't give you exactly what you want :

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