1.django+uwsgi+nginx管理平台,之前一直是单线程工作。后来加了个功能是批量查询修改ip列表中主机的密码。更新时候因为单线程所以网站会在执行完之前无法响应。
2.虚拟机和核心数是2,nginx和uwsgi我都把进程设置成了4,线程未设置
3.然后就出现了,网站登陆后很快session就清空,跳转回登录界面的问题。日志上没有任何报错,只是发现记录登录状态的session为空所以认为是登录超时给跳转了。
这是我的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
之前的配置只是没有workers一行,所以是单进程。加了workers=4后,登录网站执行长时间的函数,别人访问网站是有相应的,就是session总会在一分钟之内被清掉。
介是为嘛?
解决了
是因为我的django settings 里设置的是使用缓存去保存session
不同的uWsgi进程无法拿到其他进程的缓存
设置django的session存储使用数据库或者缓存+数据库就可以了