Nginx removes X-Client-IP header added by loadbalancer

Francis Daly francis at daoine.org
Sat Dec 8 19:15:12 UTC 2012


On Sat, Dec 08, 2012 at 01:20:12PM -0500, mrtn wrote:

Hi there,

> However, if the request is first routed to Nginx and then to the application
> server using: 
> 
> proxy_pass              http://127.0.0.1:8080;
> proxy_redirect          off;
> 
> then the 'X-Client-IP' header is missing from the request when it reaches
> Tornado. I guess I might need to explicitly add this header in Nginx as
> well, so it can relay it on. What is the right solution here?

It seems to work for me.

Can you provide an nginx.conf and nginx -V output that shows the problem?

When I use

===
    server {
        listen 8000;

        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect off;
        }   
    }   
===

and try

curl -i -A "" -H X-Client-IP:1.2.3.4 http://localhost:8000/

then I can see in tcpdump output going to port 8080:

===
GET / HTTP/1.0
Host: 127.0.0.1:8080
Connection: close
Accept: */*
X-Client-IP: 1.2.3.4

===

This is with nginx/1.2.4.

What's different in your setup?

	f
-- 
Francis Daly        francis at daoine.org



More information about the nginx mailing list