А РХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev ][Date Next ][Thread Prev ][Thread Next ][Date Index ][Thread Index ]
выбор upstream при помощи map (remote_ addr, hostname)
To : nginx-ru@xxxxxxxxx
Subject : выбор upstream при помощи map (remote_ addr, hostname)
From : Костенко Евгений <nobody.mail@xxxxxxxxx >
Date: Tue, 17 Nov 2009 15:38:32 +0300
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:from:date:message-id :subject:to:content-type; bh=zfVZlELnpDYBeH/9Z2Xc5eFhoTA9T24f40bmSSZKg7M=; b=bam2PTV8bnxckhe4uR0M5dpUO83qEzqP0bJ6wt1TIevwliZSPPVRxDZCzCrq7eRcoB IgSc6UQxYfg1C38JRAeN/0PqtnUp3QvdC48FPPzjaRSUv9NQqIQUjoTwWVOuxnecSnMu MEX6ojPD9GexarTKS3FyjBmVOVc+ZWTL0T3Fs=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=D1rWQVHFR/vI5M/iORqk7uoXigjlCwP9+bwdEX4yAzag+jfxb023XnFgTo4dOkpvb2 MhUJbYLzb9S8sNZgPBlzzVDt6Xwr7MwpGgoFP/h8/ssBBRvp7mntxJ3hWjn+lewJU3kV I1BvNa80vLQ0AEIiuR656PKhdWp2+uVI0Xhx8=
Всем доброго времени суток! Для некоторых из 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@xxxxxxxxxxxxxxxxxxxxx:/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;
} } Но тут явное указание address:port, а в моем сюжете требуется указать named upstream с группой адресов внутри. Есть идеи как прикрутить задуманное, или сие изврат и работать не будет?
-- С Уважением, Костенко Евгений моб: +7(928)2961142 icq: 101241013 jabber: nobody.mail@xxxxxxxxx