upstream && if

Andrey Repin hell-for-yahoo at umail.ru
Mon Mar 4 18:23:48 UTC 2013


Здравствуйте, Уважаемый(-ая, -ое) Андрей Середенко!

АС> Доброго времени суток всем подписчикам!

АС> Подскажите, возможно ли нечто этакое:

АС> Использую proxy_pass, для примера:

АС> upstream some_proxy {
АС>         server SERV_NAME_1:8080;
АС>         server SERV_NAME_2:8080 backup;
АС> }

АС> в локейшене анализирую урел на предмет наличия определенного параметра:
АС>       /some/url/.....?param=SERV_NAME_x

АС> Задача в том, чтобы отдавать запрашиваемый файлик (имя передается в том же
АС> в урле) при встрече такого параметра с машины SERV_NAME_x, и не
АС> проксировался на вторую машину. Хотел попробовать в upstream вписать if
АС> проверки, а-ля:

Что мешает прописать ещё два апстрима, по одному на конкретный сервер? И при
необходимости отдавать с них.

АС> if ($args ~* (.*) param=SERV_NAME_1 (.+)) {
АС> * server SERV_NAME_1:8080;*
АС> }
АС> аналогично для serv_name_2. Но в upstream, насколько я понял, нельзя
АС> использовать директиву if. Подскажите, есть ли какое-то более-менее
АС> стандартное решение этого вопроса, или же надо искать в другой степи?

АС> Спасибо.


-- 
С уважением

    Andrey Repin (hell-for-yahoo at umail.ru) понедельник, 04.03.2013, <22:23>


Подробная информация о списке рассылки nginx-ru