nginx、uwsgi部署django中session丢失得问题
用nginx反向代理、uwsgi部署django的过程中,session可能在request中通过request.session.get()获取不到,其可能的原因有两种:
一、nginx反向代理的过程中,因为域名变化,可能会获取不到,需要将cookie的路径通过nginx也要反射出去。在nginx.conf做以下配置:
proxy_cookie_path / /; # 主要为这里 proxy_set_header Host $host; proxy_set_header Referer $http_referer; proxy_set_header Cookie $http_cookie; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
二、session获取不到的第二个原因可能因为uwsgi进程无法拿到其他进程的缓存,需要确认django settings中sessio储存在缓存还是django_session中:
因为我的django settings 里设置的是使用缓存去保存session
不同的uWsgi进程无法拿到其他进程的缓存
设置django的session存储使用数据库或者缓存+数据库就可以