upstream && if

Андрей Середенко andrei.seredenko at gmail.com
Mon Mar 4 13:30:50 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. Подскажите, есть ли какое-то более-менее
стандартное решение этого вопроса, или же надо искать в другой степи?

Спасибо.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130304/4931e176/attachment.html>


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