﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
603	Can't get original downstream IP when using the realip module	Tom van Neerijnen		"I would like to use the realip module to transparently use functionality like allow rules while at the same time store the original $remote_addr. The below shows my config and the resulting curl:

{{{
$ cat default
server {
        server_name localhost;
        location / {
                set $real_remote_addr $remote_addr;
                echo real_remote_addr -> $real_remote_addr;
                set_real_ip_from   0.0.0.0/0;
                real_ip_header     X-Real-IP;
                echo remote_addr -> $remote_addr;
                echo X-Real-IP -> $http_x_real_ip;
        }
}
$ curl -H ""X-Real-IP: 10.10.10.10"" localhost
real_remote_addr -> 127.0.0.1
remote_addr -> 127.0.0.1
X-Real-IP -> 10.10.10.10
}}}

If I change the ""set"" clause realip behaves as expected but I loose the original ip.

{{{
$ cat default 
server {
        server_name localhost;
        location / {
                set $real_remote_addr ""something else"";
                echo real_remote_addr -> $real_remote_addr;
                set_real_ip_from   0.0.0.0/0;
                real_ip_header     X-Real-IP;
                echo remote_addr -> $remote_addr;
                echo X-Real-IP -> $http_x_real_ip;
        }
}
$ curl -H ""X-Real-IP: 10.10.10.10"" localhost
real_remote_addr -> something else
remote_addr -> 10.10.10.10
X-Real-IP -> 10.10.10.10
}}}

Is there any way to achieve what I'm trying to achieve? Is it expected that setting a variable from the $remote_addr breaks realip?"	defect	closed	minor		other	1.4.x	wontfix	realip		Linux ubuntu-1404 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux	"nginx version: nginx/1.4.6 (Ubuntu)
built by gcc 4.8.2 (Ubuntu 4.8.2-16ubuntu6) 
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.4.6/debian/modules/headers-more-nginx-module --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-cache-purge --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-dav-ext-module --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-development-kit --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.4.6/debian/modules/ngx-fancyindex --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-http-push --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-lua --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-upload-progress --add-module=/build/buildd/nginx-1.4.6/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.4.6/debian/modules/ngx_http_substitutions_filter_module"
