Welcome! Log In Create A New Profile

Advanced

выбор upstream при помощи map (remote_addr, hostname)

November 17, 2009 07:44AM
Всем доброго времени суток!

Для некоторых из vhosts необходимо выбирать на какой upstream ходить в
зависимости от $remote_addr.

# uname -a
FreeBSD server3.nitgroup.org 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24
19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
i386

# nginx -V
nginx version: nginx/0.7.62
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-R /usr/local/lib -L /usr/local/lib'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx-error.log --user=www --group=www
--with-google_perftools_module
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-log-path=/var/log/nginx-access.log --with-http_gzip_static_module
--with-http_realip_module --with-http_ssl_module
--with-http_stub_status_module --with-pcre

Собственно вопрос - баловство с map & $remote_addr позволит юзать proxy_pass
с указанием ИМЕНИ,
декларированного upstream? Или только address:port? На примере

map $remote_addr $upstream_name {
default local;
x.x.x.x phpbackends;
y.y.y.y local;
}

и далее в конфиге

location / {
proxy_pass http://$upstream_name;
<SKIPPED>
}

Эксперимент на практике приводит к перманентной выдаче 503 со стороны nginx.
Поиски в google привели к ruby-forum.com и предложенной Игорем реализации.

http://www.ruby-forum.com/topic/176958

map $remote_addr $back1 {

default 10.0.0.1:80;
192.168.1.1 10.0.0.2:80;
192.168.1.5 10.0.0.2:80;
}

server {
listen 80;
server_name bar.foo.com;

location / {
proxy_pass http://$back1$request_uri; http://$back1$request_uri/;

}
}

Но тут явное указание address:port, а в моем сюжете требуется указать named
upstream
с группой адресов внутри.

Есть идеи как прикрутить задуманное, или сие изврат и работать не будет?

--
С Уважением,
Костенко Евгений

моб: +7(928)2961142
icq: 101241013
jabber: nobody.mail@gmail.com
Subject Author Posted

выбор upstream при помощи map (remote_addr, hostname)

n0guest November 17, 2009 07:44AM

Re: выбор upstream при помощи map (remote_addr, hostname)

Igor Sysoev November 17, 2009 09:12AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 148
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready