在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Python/ uwsgi 開(kāi)啟多進(jìn)程,django網(wǎng)站用戶(hù)session一直清空

uwsgi 開(kāi)啟多進(jìn)程,django網(wǎng)站用戶(hù)session一直清空

1.django+uwsgi+nginx管理平臺(tái),之前一直是單線(xiàn)程工作。后來(lái)加了個(gè)功能是批量查詢(xún)修改ip列表中主機(jī)的密碼。更新時(shí)候因?yàn)閱尉€(xiàn)程所以網(wǎng)站會(huì)在執(zhí)行完之前無(wú)法響應(yīng)。
2.虛擬機(jī)和核心數(shù)是2,nginx和uwsgi我都把進(jìn)程設(shè)置成了4,線(xiàn)程未設(shè)置
3.然后就出現(xiàn)了,網(wǎng)站登陸后很快session就清空,跳轉(zhuǎn)回登錄界面的問(wèn)題。日志上沒(méi)有任何報(bào)錯(cuò),只是發(fā)現(xiàn)記錄登錄狀態(tài)的session為空所以認(rèn)為是登錄超時(shí)給跳轉(zhuǎn)了。

這是我的uwsgi配置
[uwsgi]
chdir=xx
module=xx
socket=xx
master=True
workers=4
pidfile=xx
vacuum=True
max-requests=5000
daemonize=xx
async=30
ugreen=''
http-timeout=300

之前的配置只是沒(méi)有workers一行,所以是單進(jìn)程。加了workers=4后,登錄網(wǎng)站執(zhí)行長(zhǎng)時(shí)間的函數(shù),別人訪(fǎng)問(wèn)網(wǎng)站是有相應(yīng)的,就是session總會(huì)在一分鐘之內(nèi)被清掉。
介是為嘛?

回答
編輯回答
練命

按理說(shuō)不會(huì)出現(xiàn)這種情況的。每次請(qǐng)求,后端生成的session信息都會(huì)保存在django_session表里,然后把session key放到cookie里返回給前端。 前端再次請(qǐng)求的時(shí)候帶上這個(gè)session,去數(shù)據(jù)庫(kù)里查詢(xún)相應(yīng)的信息。
../python2.7/site-packages/django/contrib/sessions/middleware.py
你看看呢

2018年4月8日 21:33
編輯回答
紓惘

解決了
是因?yàn)槲业膁jango settings 里設(shè)置的是使用緩存去保存session
不同的uWsgi進(jìn)程無(wú)法拿到其他進(jìn)程的緩存
設(shè)置django的session存儲(chǔ)使用數(shù)據(jù)庫(kù)或者緩存+數(shù)據(jù)庫(kù)就可以了

2018年4月28日 08:14