Hello! On Wed, Mar 06, 2013 at 09:53:49AM -0500, krain wrote:
> 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/) X-Accel-Redirect вызывает внутреннее перенаправление в nginx'е, а как полученный URI обработать - это лишь вопрос конфигурации. > т.е. выдавая скриптом с сервера 192.168.0.1 ответ в header-е > > X-Accel-Redirect: http://192.168.0.2/a.html > бэкенд до ответа посетителю должен переслать запрос к > 192.168.0.2 > и если все ок, то отдать нормальный ответ посетителю? Нет. Нужно сделать как-то так: location / { proxy_pass http://all_backends; } location /files_on_server_1/ { proxy_pass http://server_1/; } location /files_on_server_2/ { proxy_pass http://server_2/; } И возвращать X-Accel-Redirect /files_on_server_1/a.html. > Возможно ли так передать POST запрос? Если очень хочется - то можно. Но вообще я бы не рекомендовал лишнего заниматься перенаправлениями POST-запросов. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru