2015-04-16 3 views
2

у меня возникают проблемы с использованием используя бэкенд кэша для ДжангоВойти проблема с Джанго в кэше сессий

SESSION_ENGINE = "django.contrib.sessions.backends.cache" 

Когда я установил двигатель сеанса использовать кэш вместо БД. Я не могу войти в систему. Из журналов приложений я вижу, что auth успешно, ответ также содержит заголовок set-cookie для session_id. Так что все, кажется, работает. За исключением того, что я только что вернулся на страницу входа после входа в систему. Я предполагаю, что этот сеанс

Если я прокомментирую механизм сеанса, он вернется к использованию механизма сеанса БД и работает как ожидалось.

Это работает на моем компьютере python 2.7 локально, на сервере, где это не работает, работает python 2.6 (я не уверен, что это актуально, но это единственная реальная разница, которую я могу найти) , Пакеты пакетов в основном идентичны, я думаю, что все это происходит изнутри django. Я использую django 1.6.7 в обоих местах.

+1

Как настроено ваше кэширование? Например. настройка CACHES? Скорее всего, кеширование не настроено должным образом/безопасно для использования в качестве механизма сеанса. –

+0

Его по умолчанию django - это кеш памяти. Я буду копаться вокруг, что это стоит того, что я проверяю дважды. – joeButler

ответ

3

LocMemCache не подходит для производства.

Вы должны использовать сеансы, основанные на кеше, только если вы используете сервер кэша Memcached. Бэкэнда локальной памяти не сохраняет данные достаточно долго, чтобы быть хорошим выбором, и быстрее будет использовать сеансы файлов или баз данных, а не отправлять все через бэкэнды файлов или баз данных. Кроме того, бэкэнд кэша локальной памяти НЕ является многопроцессорным, поэтому, вероятно, он не является хорошим выбором для производственных сред.

https://docs.djangoproject.com/en/1.6/topics/http/sessions/#using-cached-sessions

Вообще, когда я развертывания в первый раз, когда я начну с DB Cache сконфигурированный, чтобы доказать конфигурацию. Затем переключите его на Memcache или Redis.

+0

Не понимал, что это не безопасно для многих процессов. Я рассмотрю переход на memcached – joeButler

+0

Когда я впервые прошел через это, я нашел документы, которые трудно читать и интерпретировать. Рад, что у вас это прямо сейчас :-) –

Смежные вопросы