Re: proxy pass через Header
krain
nginx-forum at nginx.us
Wed Mar 6 14:53:49 UTC 2013
Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
>
> On Wed, Mar 06, 2013 at 06:27:39AM -0500, krain wrote:
>
> > nginx стоит балансировщиком и переадресует запросы скажем
> > на группу серверов
> > 192.168.0.1
> > 192.168.0.2
> > 192.168.0.2
> > через proxy_pass
> >
> > Например запрос перешел на 192.168.0.1, можно ли как-то вернуть в
> заголовке
> > команду для балансировщика
> > сменить upstream сервер с 192.168.0.1 на 192.168.0.2 или 192.168.0.3
> (на
> > тот, который укажет скрипт)
> > Не передавая ничего в браузер пользователя (что-то вроде внутреннего
> > редиректа, но на другой upstream сервер)
> >
> > Как я понял proxy_next_upstream не подходит.
> >
> > Задача в следующем:
> > Если на сервере нет нужного файла, но скрипт определил где файл
> находится
> > (после запроса к базе данных) и готов указать указать
> > на каком сервере он лежит.
> > Хочется чтобы балансировщик nginx переподключился к указанному
> серверу.
> >
> > Заранее спасибо за ответ.
>
> Логичным решением было бы вернуть X-Accel-Redirect в location,
> который в свою очередь проксируется на нужный сервер.
Вроде как "X-Accel-Redirect:" только локально работает?
(http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/)
т.е. выдавая скриптом с сервера 192.168.0.1 ответ в header-е
X-Accel-Redirect: http://192.168.0.2/a.html
бэкенд до ответа посетителю должен переслать запрос к
192.168.0.2
и если все ок, то отдать нормальный ответ посетителю?
Возможно ли так передать POST запрос?
>
> --
> Maxim Dounin
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,236991,237005#msg-237005
Подробная информация о списке рассылки nginx-ru