Nginx real_ip module doesn’t work in some conditions

nginx

So I have Nginx proxy and some servers running behind it. I need to know real users IP not proxy, so I using real_ip module. Everything is working as expected, but if I configure vhost like subdomain.domain.com backend getting Nginx proxy IP.

Here is my Nginx config sample

set_real_ip_from  192.168.2.0/24;
real_ip_header    X-Forwarded-For;
real_ip_recursive on;

upstream srv1 { server 192.168.2.12:80; }

server {

        listen       80;
        server_name  dev.somedomain.com;

        location / {
         proxy_pass  http://srv1;
       }

}

server {

        listen       80;
        server_name  somedomain.com;

        location / {
          proxy_pass  http://srv1;
        }

}

So if I go to somedomain.com backend receiving real IP, no problems here.
But for dev.somedomain.com backend receiving proxy IP!

And this is only shortened example, same situation with different domains and subdomains…

I just don't see whats is wrong here…

Best Answer

Ok so it seams my mistake, everything is fine with this configuration, I need extra step in backend to complete my task, as for specific example I needed to set option in backend server (litespeed web server) option "Use Client IP in Header" I must be accidentally disabled it.