location+upstream+persistent hash

Mikhail Mazursky ash2kk на gmail.com
Пт Авг 12 09:43:15 UTC 2011


12 августа 2011 г. 10:47 пользователь john2do <nginx-forum at nginx.us> написал:
> День добрый
>
> появилась необходимость отправлять
> определенные пост запросы (определены
> несколькими аргументами в урле) на один
> и тот же бэк.
> вопрос как красивее это организовать?
> часть запроса которая определяет что
> это именно тот же урл POST
> /service/upload.php?file=123.jpg&path=tralala&... (далее идут
> параметры которые меняются и их
> ненужно учитывать при определении
> бэка).
>
> была мысль про upstream_hash но тут же
> появились глупые вопросы: нужно будет
> всегда определять $hash а кроме этих
> постов на теже самые бэки ходят и более
> другие запросы, т.е. отдельно директиву
> апстрима определять и как поведут себя
> алгоритмы при пустой строчке хэша? на
> один бэк запросы пойдут или
> раунд-робином или fair(если установлен)?

map $request_method-$arg_a-$arg_b-$arg_c $upstream {
default default_upstream;

POST-a-b-c upstream1;
POST-a1-b1-c1 upstream2;
...
}

location /... {
proxy_pass http://$upstream;
}

По синтаксису наверное ошибся, но общая идея такая. Еще map
поддерживает регулярные выражения для сложных случаев.


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