Цель данной заметки:
Решить проблему кеширования на уровне nginx.
Предисловие:
Кешировать можно все страницы на 10-60 минут для не залогиненных пользователей.
Проверять залогиненных пользователя можно по куке (LS — key, а в AltoCMS — user_key).
Используя LS 1.0.3/Alto 0.9.7.1 обнаружил особенности работы движка:
1. Всем (залогиненным и нет) пользователям выдается кука с идентификатором сессии. Она используется при открытии модальных окон, который подтягивают контент с сервера.
Это создает проблему в случае включения кеширования nginx-ом страниц для не залогиненных пользователей.
При попытке открыть контент в модальном окне происходит проверка сервером правильности идентификатора сессии.
Примеры:
http://sla.kiev.ua/video/ (здесь отключено кеширование, поэтому все работает)
http://sla.kiev.ua/tec/item/planer-l-13-blanik.html Закладка «Видео». Тут кеширование включено и видео в модальном окне не открывается.
Подскажите, как вообще избавиться от сессии для пользователя?
2. Залогиненным пользователям выдается выдается кука key. А только что зарегистрировавшимся — нет.
В результате пользователь зарегистрировался, тут же автоматом залогинился и не получил куки. При включенном кешировании это ломает всю работу сайта для этого пользователя.
Этот баг достался Альто от LS.
Можно воспроизвести зарегистрировавшись на моем сайте sla.kiev.ua
Подскажите, как бы его пофиксить или обойти?
сентября
01
2013
+4