When the Apache HTTP Server manages its child processes, it needs a way to wake up processes that are listening for new connections. To do this, it sends a simple HTTP request back to itself. This request will appear in the access_log file ... typically from 127.0.0.1 or your server's IP address. For example:
83.170.93.77 - - [16/Sep/2011:03:30:02 +0100] "OPTIONS * HTTP/1.0" 200 - "-" "Apache (internal dummy connection)"
These requests are perfectly normal and you do not, in general, need to worry about them. They can simply be ignored. They should certainly not be "counted" as web site hits in any shape or form! If you wish to exclude them from your log, you can use normal conditional-logging techniques. For example:
SetEnvIf Remote_Addr "83\.170\.93\.77" loopbackaccess
CustomLog logs/access_log combined env=!loopbackaccess
And remember to stop and restart your server to pick up the new configuration file!
Aside ... the difference between counting the number of hits and the number of unique visitors - analysis of a log file of ours from a day last week:
-bash-3.2$ wc ac_20110914
120924 2271108 27668240 ac_20110914
-bash-3.2$ perl -na -e '$n{$F[0]}++;END{print 0+keys(%n),"\n";}' ac_20110914
9744
-bash-3.2$
Translating that ...
27 Mbyte log file
120,924 requests received
9,744 different hosts requesting data
As ever, statistics hide a multitude of sins. The "different hosts" will include one for the internal dummy connection (unless you have disabled it) and a number for crawlers, which may (or be may not) be something you really want to count. However, it will only count one for all the machines behind a router which - for visitors from Well House Manor - means that all delegates on courses will appear to be the same person.
(written 2011-09-19)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P210 - Perl - Topicalization and Special Variables [493] Running a Perl script within a PHP page - (2005-11-12)
[639] Progress bars and other dynamic reports - (2006-03-09)
[969] Perl - $_ and @_ - (2006-12-07)
[1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
[1221] Bathtubs and pecking birds - (2007-06-07)
[1232] Bathtub example - (2007-06-14)
[1289] Pure Perl - (2007-08-03)
[1444] Using English can slow you right down! - (2007-11-25)
[1508] How not to write Perl? - (2008-01-15)
[1704] Finding operating system settings in Perl - (2008-07-10)
[1705] Environment variables in Perl / use Env - (2008-07-11)
[1728] A short Perl example - (2008-07-30)
[1829] Dont bother to write a Perl program - (2008-10-10)
[1860] Seven new intermediate Perl examples - (2008-10-30)
[1922] Flurinci knows Raby Lae PHP and Jeve - (2008-12-04)
[2833] Fresh Perl Teaching Examples - part 2 of 3 - (2010-06-27)
[2876] Different perl examples - some corners I rarely explore - (2010-07-18)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[4301] Perl - still a very effective language indeed for extracting and reporting - (2014-09-20)
[4395] Preparing data through a little bit of Perl - (2015-01-15)
[4682] One line scripts - Awk, Perl and Ruby - (2016-05-20)
[4700] Obfurscated code - it might work, but is it maintainable? - (2016-07-02)
A603 - Web Application Deployment - Further httpd Configuration [345] Spotting a denial of service attack - (2005-06-12)
[466] Separating 'per instance' data from binaries and web sites - (2005-10-16)
[526] Apache httpd - serving web documents from different directories - (2005-12-12)
[550] 2006 - Making business a pleasure - (2006-01-01)
[631] Apache httpd to Tomcat - jk v proxy - (2006-03-03)
[649] Denial of Service ''attack'' - (2006-03-17)
[662] An unhelpful error message from Apache httpd - (2006-03-30)
[755] Using different URLs to navigate around a single script - (2006-06-11)
[853] To list a directory under httpd on a web server, or not? - (2006-09-02)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
[1080] httpd.conf or .htaccess? - (2007-02-14)
[1121] Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29)
[1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
[1351] Compressing web pages sent out from server. Is it worth it? - (2007-09-14)
[1355] .php or .html extension? Morally Static Pages - (2007-09-17)
[1377] Load Balancing with Apache mod_jk (httpd/Tomcat) - (2007-10-02)
[1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
[1551] Which modules are loaded in my Apache httpd - (2008-02-23)
[1554] Online hotel reservations - Melksham, Wiltshire (near Bath) - (2008-02-24)
[1564] Default file (MiMe types) for Apache httpd and Apache Tomcat - (2008-03-04)
[1566] Strange behaviour of web directory requests without a trailing slash - (2008-03-06)
[1619] User and Group settings for Apache httpd web server - (2008-04-22)
[1636] What to do if the Home Page is missing - (2008-05-08)
[1707] Configuring Apache httpd - (2008-07-12)
[1762] WEB-INF (Tomcat) and .htaccess (httpd) - (2008-08-20)
[1767] mod_proxy and mod_proxy_ajp - httpd - (2008-08-22)
[1778] Pointing all the web pages in a directory at a database - (2008-08-30)
[1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
[1954] mod_rewrite for newcomers - (2008-12-20)
[1955] How to avoid duplicating web page maintainance - (2008-12-20)
[1974] Moving a directory on your web site - (2009-01-03)
[2060] Database connection Pooling, SSL, and command line deployment - httpd and Tomcat - (2009-03-01)
[2272] Monitoring and loading tools for testing Apache Tomcat - (2009-07-07)
[2478] How did I do THAT? - (2009-10-26)
[2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03)
[3133] An image from a website that occasionally comes out as hyroglyphics - (2011-01-14)
[3635] Parse error: parse error, unexpected T_STRING on brand new web site - why? - (2012-03-03)
[3862] Forwarding a whole domain, except for a few directories - Apache http server - (2012-09-17)
[3955] Building up from a small PHP setup to an enterprise one - (2012-12-16)
[4001] Helping search engines with appropriate 400 error codes - (2013-02-11)
[4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
Some other Articles
Reading and using emails including enclosures on your web server.Which or ATOC - who reads train fares right?Why would you want to use a Perl hash?A threat in the post? Poor marketing practise from Smiletrain?Apache Internal Dummy Connection - what is it and what should I do with it?Checking all the systems on a subnet, using Expect and TkNeedle in a haystack - finding the web server overloadAwk v PerlPerl and CGI - simple form, and monitoring script.Take the dog on a lead - do not carry her. Perl references.