Доброго дня!
 
Пытаюсь решить своеобразную проблему с определением клиентских адресов.
Суть в том, что nginx стоит за амазоновским elb балансировщиком.
ELB передает траффик в Nginx через proxy_protocol и все вроде бы хорошо и обычной конфигурации типа:
 
set_real_ip_from 192.168.0.0/24;
real_ip_header proxy_protocol;
 
должно хватать. но проблема еще в том, что перед elb балансировщиком может быть qrator или его аналог, соответственно нам нужно достать информацию об адресе клиента уже основываясь не исходящий ip адрес запроса,
а на заголовок X-Forwarded-For.
 
т.е. в идеале работала бы такая схема:
 
geo $proxy_protocol $real_ip_header {
default "proxy_protocol";
<qrator subnet> "X-Forwarded-For";
}
 
real_ip_header $real_ip_header;
 
Nginx при таком раскладе не ругается, но и не заменяет адрес ни на proxy_protocol_add, ни на X-Forwarded-For.
Может кто-нибудь уже с таким сталкивался? Был бы очень благодарен.
 
nginx version: nginx/1.9.4
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1k 8 Jan 2015
TLS SNI support enabled
configure arguments: --with-ld-opt=-Wl,-rpath,/usr/local/lib --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-stream_ssl_module --with-http_realip_module --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_spdy_module --with-threads --with-http_geoip_module --with-ipv6 --with-http_stub_status_module --add-module=/opt/ngx_devel_kit-0.2.19 --add-module=/opt/lua-nginx-module-0.9.17rc1
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить