早期Django管理员注销

时间:2011-01-10 14:49:21

标签: python django django-admin

我正在开发一个Django 1.2.3项目,我发现管理员会话在登录后大约一分钟,即使我正在使用它时,也很早就会超时。

最初,我有这些设置:

SESSION_COOKIE_AGE=1800
SESSION_EXPIRE_AT_BROWSER_CLOSE=True

我认为问题可能是我的会话存储配置错误,所以我尝试通过添加以下内容来配置我的会话存储在本地内存中:

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
CACHE_BACKEND = 'locmem://'

然而,问题仍然存在。是否存在其他会导致管理员会话提前超时的情况,即使用户处于活动状态也是如此?

1 个答案:

答案 0 :(得分:3)

locmem://中的缓存会话意味着每当python进程重新启动时都会丢失会话。如果您在开发服务器下运行,则可以在任何时候保存文件。在生产环境中,这将根据您的基础结构而变化 - 例如,apache中的mod_wsgi将在一定数量的请求(高度可配置)之后重新启动python。如果您配置了多个python进程,那么只要您的请求进入不同的进程,您就会丢失会话。

此外,如果生产环境中有多台服务器,locmem://只会引用一个服务器进程。

换句话说,不要将locmem://用于会话存储。