Re: nginx proxy аутентификация
Alex Belyansky
alex.barut at gmail.com
Wed Feb 26 14:58:47 UTC 2014
On 26.02.2014 18:18, denis wrote:
> 26.02.2014 18:07, Alex Belyansky пишет:
>> On 26.02.2014 17:41, denis wrote:
>>> 24.02.2014 15:55, komiller пишет:
>>>> Здравствуйте.
>>>>
>>>> Прошу помочь, не давно перешел на нгинх и все бы прекрасно да только
>>>> проблемка одна. Nginx я использую для балансировки нагрузки между
>>>> двумя
>>>> серверами,
>>>> при входе в сайт есть авторизация и соответсвенно каптча, так вот
>>>> каптча все
>>>> время ругается что код не правильный хотя все правильно.
>>> куки не синхронизированы, ip_hash - вариант. Но можно писать куки в
>>> nfs шару или общий memcached, проблема тоже будет неактуальна.
>>>
>>
>> NFS - плохая затея! Уже пробовали. Даже при невысокой посещяемости,
>> заметно притормаживает. Общий memcached это уже ближе к делу, но надо
>> быть осторожным при использовании - http://habrahabr.ru/post/38261/
> 28 августа 2008 в 13:52
> думаю, за 6 лет ситуация сильно поменялась. Плюс "или общий memcached"
> - нет проблем синхронизации. И какие проблемы там могут быть? человек
> открыл страницу, секунд 10 разгадывал-вводил капчу, отправил. Какие
> проблемы с блокировками? У каждого человека своя сессия.
> какие-то проблемы возможны, если это интернет-магазин, добавление
> товара в 1 клик, медленный канал, человек быстро кликает. И то, если
> обновляется его локальная кука и она уходит - проблем быть не должно,
> а вообще правильнее например писать в куку номер корзины, а клик -
> аякс-запрос, который пишет сразу в базу а не в куку.
> а где ещё можно хранить сессии? :)
>
> зы " каптча все время ругается что код не правильный" - не всё время,
> а принимает капчу только со 2-3 раза (хотя зависит от количества
> серверов). Тоже с таким сталкивались, но причина была быстро понята.
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Ситуация в принципе такая же, но есть CAS в классе Memcached для PHP.
Вероятно уже есть готовые реализации для сессиий с его использованием.
В вашем случае никаких блокировок с угадыванием капчи наверное быть не
должно. Если вы не используете каких-либо инкрементов внутри сессии, то
memcached решит все ваши проблемы даже без использования CAS (ну т.е.
сессия нужна по сути чтобы только авторизоваться). Если вы добавляете
идентификаторы товаров в сессию, то тут уже возможны беды. Там в
принципе в статье про это все и описано, правда для блокировок они
используют свой механизм.
Сессии можно хранить где угодно если есть свой обработчик - redis,
mongodb, да хоть в mysql, правда производительность будет хромать :)
На практике хранили только в memcached и redis - для нас этого было
вполне достаточно.
Подробная информация о списке рассылки nginx-ru