ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.