ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Управление бэкендами



On Friday 01 November 2013 16:41:47 Sergey Kobzar wrote:
> On 11/01/13 14:32, Валентин Бартенев wrote:
> > On Friday 01 November 2013 16:23:32 Sergey Kobzar wrote:
> >> Приветсвую
> >> 
> >> Nginx стоит как frontend. За ним находится несколько десятков или более
> >> бэкендов (разные servername). Необходимо динамически управлять на какой
> >> бэкенд запрос упадет.
> >> 
> >> Править nginx.conf и перечитывает его не вариант, т.к. это может
> >> происходить ежесекундно.
> >> 
> >> Думал хранить соответствие servername -> backend в memcached, но nginx
> >> похоже только умеет доставать http response и memcached.
> >> 
> >> Остается только Nginx -> Perl -> Memcached. Или есть еще варинаты? lua?
> > 
> > Самый лучший вариант - X-Accel-Redirect, смотрите например в описании
> > директивы proxy_ignore_headers.
> > 
> > http://nginx.org/r/proxy_ignore_headers/ru
> 
> Валентин, спасибо.
> Не совсем понял как это применить на практике. Т.е. мне все-равно нужно
> как-то динамически управлять на какой backend перенапрявлять запрос.
> 
> P.S. Состоянием бэкендов управляет дополнительный сервер. На нем можно
> выдавать или состояние бэкенда или на какой бэкенд запрос перенаправить.
> Но что-то я не соображу как это дело применить...
> 

Зависит от того, что вам требуется.  Как я первоначально понял ваш вопрос,
требуется на каждый запрос решать на какой сервер он пойдет.

В этом случае вы сначала с помощью proxy_pass/fastcgi_pass направляете
запрос на скрипт/сервер/приложение/базу - который решает на какой бэкенд
его отправить и возвращает в заголовках X-Accel-Redirect с указанием
бэкенда.

Далее у вас есть internal location, в котором тот же proxy_pass/fastcgi_pass
с переменной и запрос отправляется на нужный сервер.

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.