Home » Technology » [Solved] Varnish WordPress comments IP address problem

[Solved] Varnish WordPress comments IP address problem

written by Anand August 31, 2014

First, let me explain the Varnish WordPress comments IP address problem. As many of you may know I have switched to VPS from Digital Ocean and currently run a LEMP stack with Varnish Cache. All was well until recently when I discovered that all WordPress comments IP address were 127.0.0.1. This obviously cannot be right. I went back and looked at my comments from the past and the WordPress comments IP addresses were correct. Researching around I found out that Varnish Cache was the culprit. Varnish is a caching mechanism that supercharges serving static content. Let us see how to fix Varnish WordPress comments IP address problem. [Read: Setup a self-hosted CDN to speedup WordPress]

Varnish WordPress Comments IP Address Problem

Varnish WordPress Comments IP Address Problem

Varnish WordPress Comments IP Address Problem Solution

While there are multiple ways to fix this, I am going to show you the way to fix Varnish Cache WordPress Comments IP address issue universally. This means the solution will apply to all the websites that you run on the same server. Needless to say this will also work even if you have only one website running on the server. [Read: GoDaddy vs Synthesis vs Digital Ocean speed comparison]

Step 1

First, add create a file called realip.php in a location of your choice (I recommend /usr/share/php/).

sudo nano /usr/share/php/realip.php

Copy the following contents to the file:

< ?php
if ( isset( $_SERVER[ "HTTP_X_FORWARDED_FOR" ] ) ) {
  $_SERVER[ 'REMOTE_ADDR' ] = $_SERVER[ "HTTP_X_FORWARDED_FOR" ];
}
?>

Save and exit. Now you have to call this script into PHP to solve the Varnish WordPress comments IP address problem. [Read: 5 blogging mistakes I made when I started this blog]

Recommended Guides:

Step 2

Now open your php.ini file. Typically, this is located under /etc/php5. On Nginx with PHP-FPM, it under /etc/php5/fpm/. Find the following code section:

; Automatically add files before PHP document.
; http://php.net/auto-prepend-file
auto_prepend_file =

Change it as shown below to call the realip.php file you created above:

; Automatically add files before PHP document.
; http://php.net/auto-prepend-file
auto_prepend_file = /usr/share/php/realip.php

If you are using WordPress you may skip both Step 1 and Step 2, and add the PHP code from Step 1 directly into your wp-config.php. But keep in mind that this will only take effect on the WordPress site you are adding this code to and not all of your sites (including other WordPress sites on the same server). Save, exit, and restart your webserver.

Step 3

On Nginx you do this by issuing the following command:

sudo nginx -t && sudo service nginx reload

On Apache, use:

sudo service apache2 reload

This should have fixed your Varnish WordPress comments IP address problem. You should not see comments IP address 127.0.0.1 anymore. You can test by submitting a test command to verify. [Read: Digital Ocean vs Synthesis – 10 reasons why I chose Digital Ocean VPS]

WordPress Comments IP Address - Before and After

WordPress Comments IP Address – Before and After

So there you go. Whether you are using Varnish cache with Apache or Nginx, the above solution should fix the Varnish WordPress comments IP address problem.

IPVanish VPN Exclusive Offer - only $3.25/month:
VPN Guides
Windows, Android, Ubuntu
Kodi OpenVPN
OSMC on RPi
♦ Hide your browsing (no logs), Anonymize Streaming and Downloads
♦ Circumvent Geo/Country Restrictions and access worldwide content
♦ Works on Windows, Mac, Linux, Android, iOS, Router, and more
♦ Money back guarantee - Sign Up Now

Related Articles