Nginx removes X-Client-IP header added by loadbalancer
mrtn
nginx-forum at nginx.us
Mon Dec 10 01:30:39 UTC 2012
Hello Maxim,
Thanks for the suggestion. I checked my Haproxy config again, and this is
what I use for adding the 'X-Client-IP' header:
option forwardfor header X-Client-IP
In addition, if Haproxy is passing header things like 'X-Client_IP', then
why is that the requests routed directly to Tornado (not via Nginx) contain
the correct header 'X-Client-IP'? It seem like something happens when the
requests go through nginx and the header is dropped.
Below is part of my nginx config, and the last location block is the
relevant one here.
worker_processes 2;
pid /var/run/nginx.pid;
daemon off;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nodelay on;
tcp_nopush on;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 15;
send_timeout 15;
server_tokens off;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain text/css
application/x-javascript
application/xml application/xml+rss
text/javascript;
log_format mylog '$remote_addr - $remote_user
[$time_local] "$request" $status $sent_http_content_type $body_bytes_sent
"$http_referer" "$http_user_agent"';
server {
listen 8484;
server_name www.mysite.com mysite.com;
access_log
/home/www-data/logs/nginx_www_access.log;
error_log
/home/www-data/logs/nginx_www_error.log debug;
error_page 404 /404.html;
error_page 502 503 504 /50x.html;
error_page 403 /forbidden.html;
root
/home/www-data/tornado/mysite/static;
if ( $http_referer ~*
(babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen|video|webcam)
) {
return 405;
}
location ~* (\.jpg|\.png|\.css|\.js|\.html)$ {
valid_referers none blocked www.mysite.com static.mysite.com
mysite.com;
if ($invalid_referer) { return 405; }
}
location ^~ /doc/read/ {
if ($uri ~* (\.jpg|\.png|\.css|\.js|\.html)$) { return 404;
}
if ($uri !~* /doc/read/[a-zA-Z0-9_-]+/[0-9]+$) { return 404;
}
#if ($http_cookie !~* "subject=[.]+") { return 404; }
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
}
}
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,233736,233770#msg-233770
More information about the nginx
mailing list