несколько бэкэндов и сессии

Alexei Saveliev alexei at saveliev.org
Fri Apr 7 22:11:32 MSD 2006


Hello Anton,

Friday, April 7, 2006, 6:13:34 PM, you wrote:
AS>> Кто как решал проблему сессий при количестве бэкэндов больше одного?

AS>> Пока следующие варианты:
AS>> - централизованное хранилище данных

AY> Пожалуй самый разумный вариант. Но нужны дополнительные действия для
AY> обеспечения отказоустойчивости.
Ну и дополнительный сервер :)

AS>> - выбор бэкэнда на основе параметров дописываемых в линки

AY> Если один бэкенд нужно будет выключить, то сессии, которые на нем жили
AY> придется оборвать. При централизованном хранении сессий такой проблемы
AY> нет.
AY> И загрузка бэкендов будет менее равномерной.
Да вариант тупиковый, но и самый простой.

AS>> - хранить все на клиенте

AY> Все на клиенте хранить нельзя. Иначе как сделать авторизацию?
Ну у меня например очень много данных в линках хрянятся. Просто они
пожаты и закрипчены. Размер линка особо сильно не напрягает. Можно так
же в куку засунуть.

AY> С сессиями она работает примерно так: если клиент прошел авторизацию
AY> даем ему куку со случайно сгенерированным id, и пишем в сессию этот id
AY> и login. Далее по этому id мы идентифицируем клиента.

если куку id не менять - то man in the middle легко делается.
если менять то данная схема плохо работает когда идет параллельно
несколько запросов (например фреймы) каждый из которых отсылает
текущее значение куки. уже проходили :)



-- 
Best regards,
 Alexei                            mailto:alexei at saveliev.org






More information about the nginx-ru mailing list