Skip to main content
 首页 » 编程设计

python之早期的 Django 管理员注销

2024年09月03日35Terrylee

我正在处理一个 Django 1.2.3 项目,我发现管理 session 似乎很早就超时了,在登录后大约一分钟后,即使我正在使用它也是如此。

最初,我有这些设置:

SESSION_COOKIE_AGE=1800 
SESSION_EXPIRE_AT_BROWSER_CLOSE=True 

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

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

但是,问题还是出现了。即使用户处于事件状态,是否还有其他原因会导致管理 session 提前超时?

请您参考如下方法:

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

更重要的是,如果你在生产环境中有多个服务器,locmem://将只引用一个服务器进程。

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