CloudFlare is pretty awesome. But anyone who uses the service and has needed to analyze web server logs realizes that due to CloudFlare working as a proxy, all IP addresses logged are those belonging to the CloudFlare network. This can cause some headaches if you're attempting to troubleshoot issues like abuse or if your web application relies on real visitor IP addresses. Because of this, CloudFlare has provided their own module which alleviates this. Documentation on the module here, and use cases here.
Installation of this module is rather straight forward, but if you're using DirectAdmin then there's a few slight adjustments that need to be made due to their use of the
httpd-includes.conf file. Don't worry, it's still super simple.
For this guide, I used CentOS 6.8 with Apache 2.4.
1) First things first, I'd recommend making a backup of your Apache configuration directory.
cp -a /etc/httpd/conf/ /etc/httpd/conf.`date +%Y%m%d`/
2) Download the module.
3) Install the module.
apxs -a -i -c mod_cloudflare.c
4) Add mod_cloudflare to DirectAdmin's
echo "LoadModule cloudflare_module /usr/lib/apache/mod_cloudflare.so" >> /etc/httpd/conf/extra/httpd-includes.conf
/etc/httpd/conf/httpd.conf with a text editor and comment out the LoadModule line like so:
6) Restart Apache and use
httpd -M to verify the mod_cloudflare module is showing as loaded.