Apache 2.x keeps child processes alive by creating internal connections which appear in the log files as "internal dummy connection" on the IP address ::1 or 127.0.0.1. If you ever monitor Apache log files you‘ll see a lot of these in the log files. This post shows how to prevent logging for these two IP addresses so your log files won‘t get filled up with these
What the log lines look like
With IPv6 the log lines come from the IP address ::1 and will look similar to this:
1 |
::1 - - [11/Oct/2010:13:02:47 +1300] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g (internal dummy connection)" |
Prevent logging for local requests
The simplest solution is to prevent logging for local requests. Normally these would only be from the Apache server itself, unless you are doing something special which is requesting pages using the local IP address (i.e. ::1 or 127.0.0.1).
Locate the logging section of your main Apache log file. You‘ll have an entry something along the lines of this, although the exact setting will vary depending on which operating system, distribution and version you are using, or any custom changes you have made:
1 |
CustomLog /var/log/apache2/access.log combined |
Add this line for IPv4 style IP addresses for local connections (127.0.0.1):
1 |
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog |
or this for IPv6 style IP addresses (::1):
1 |
SetEnvIf Remote_Addr "::1" dontlog |
And then add env=!dontlog to the end of your logging line so it looks like this, using the same example as shown above:
1 |
CustomLog /var/log/apache2/access.log combined env=!dontlog |
Now restart Apache and any local connections, including those "internal dummy connection" entries, will no longer be logged.