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