Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Real IP for Apache (Nginx reverse proxy)

NGINX 1.10 + APACHE 2.4 real IP for reverse proxy

Edit nginx conf

default.conf or what you want

vim /etc/nginx/conf.d/default.conf

add proxy_set_header for php files

   location ~ \.php$ {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;


Add apache remoteip mod with

a2enmod remoteip

create a new conf file for Apache

vim /etc/apache2/conf-available/remoteip.conf

and add

RemoteIPHeader X-Forwarded-For

Add active this conf with

a2enconf remoteip

restart apache

service apache2 restart

And now apache logs and $SERVER['REMOTE_ADDR'] have the real IP ;-)

Copy link

agalera commented Jun 3, 2019


Copy link

phughes3866 commented Dec 8, 2021

Thanks. Have apache serving webdav behind nginx proxy. This worked great for logging the origin IP address to apache's error.log file so that fail2ban could see any offending bad-login IP (rather than the localhost all the time). Used in combination with the correct nginx proxying header: proxy_set_header X-Forwarded-For $remote_addr;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment