If you run a reasonably high traffic blog on a small Linode server like this one, it’s a really good idea to set up an Nginx front-end proxy for your Apache server. It lets you handle relatively high traffic without running out of apache children while keeping keep-alive enabled.
You can read more about how to set up Nginx and other tips on my Basic WordPress Speedup page.
If you have set up Nginx, you’ll notice that your comments no longer have the real IP address of visitors to your site. They’re all 127.0.0.1 or something similar.
The way I solved this was to edit my php.ini file. On my Ubuntu server this lives in /etc/php5/apache2/php.ini
I modifed the auto_prepend_file variable to look like this:
auto_prepend_file = /etc/php5/apache2/mdm.php
Then in the mdm.php file I put this:
$mdm_headers = apache_request_headers();
$_SERVER['REMOTE_ADDR'] = $mdm_headers["X-Forwarded-For"];
This assumes you have the following line in your Nginx.conf to forward the real IP address:
proxy_set_header X-Forwarded-For $remote_addr;