2011-01-10 86 views
2

我正在研究一个Django 1.2.3项目,并且我发现管理会话在登录后大约一分钟后似乎超时非常早,甚至在我使用它时也如此。早期Django管理员注销

起初,我有以下设置:

SESSION_COOKIE_AGE=1800 
SESSION_EXPIRE_AT_BROWSER_CLOSE=True 

我想可能是我的会话存储被错误配置的问题,所以我想配置我会通过添加存储在本地内存:

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

但是,问题仍然存在。是否还有其他事情会导致管理员会话提前超时,即使用户处于活动状态?

回答

3

在locmem中缓存会话://意味着只要python进程重新启动就会丢失会话。如果您正在dev服务器下运行,那么您可以在任何时候保存文件。在生产环境中,这将根据您的基础架构而变化 - 例如,apache中的mod_wsgi将在一定数量的请求(这是高度可配置的)之后重新启动python。如果您配置了多个python进程,则只要您的请求转到其他进程就会丢失会话。更重要的是,如果生产环境中有多个服务器,则locmem://只会引用一个服务器进程。

换句话说,不要使用locmem://进行会话存储。