Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ip_hash => cookie_hash
On Thu, Apr 14, 2011 at 12:17:42AM +0300, Vasil Mikhalenya wrote:
> > все правильно, допустим, у вас 10 бекендов. приходит клиент. без куки.
> его
> > куда-то отправляют (скажем на бекенд1), там он получает куку JSESSIONID,
> > второй раз приходит уже с кукой. мы берем ее как ключ и считаем хеш.
> попадем
> > ли мы по этому хешу на бекенд1 (который нас знает и который нам выдал
> куку)
>
> Если бэкэнды не используют shared sessions storage то ССЗБ
>
>
> Если бы сессия была доступна на всех нодах, то данного вопроса не возникло бы
> в
> принципе.
Возможно, вам имеет смысл посмотреть на haproxy (http://haproxy.1wt.eu/),
у него с всякими cookie-based persistense на порядок лучше.
Если кроме JSESSIONID вы можете добавлять еще какие-нибудь куки
(или добавлять в JSESSIONID указание "куда его проксировать") -
можете попробовать примерно такой подход:
upstream serverone {
server serverone.domain.tld;
server servertwo.domain.tld backup;
}
upstream servertwo {
server serverone.domain.tld backup;
server servertwo.domain.tld;
}
upstream serverpool {
server serverone.domain.tld;
server servertwo.domain.tld;
}
location / {
if($cookie_ADVICE = "ONE") { # if($cookie_JSESSIONID ~* "#ONE$")
proxy_pass http://serverone;
break;
};
if($cookie_ADVICE = "TWO") {
proxy_pass http://servertwo;
break;
};
# by default balance requests among pool members
proxy_pass http://serverpool;
};
--
In theory, there is no difference between theory and practice.
But, in practice, there is.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|