2011-01-10 94 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://進行會話存儲。