写的一个小网站部署到服务器上面,结果session很不稳定,登录后,多刷新几次,一会儿显示登录,一会儿就没有登录状态,这是什么情况呢?

2013-07-06 13:01:17 +08:00
 ivanlw
5227 次点击
所在节点    Flask
10 条回复
ejin
2013-07-06 16:02:30 +08:00
是不是有框架
yibin001
2013-07-06 16:11:05 +08:00
有多台服务器?session是diskstorage模式?
yetone
2013-07-06 20:26:23 +08:00
多进程导致的,nginx 使用 ip_hash。
ixiaohei
2013-07-06 20:52:54 +08:00
也碰过到,不知什么原因。开发的时候碰到的
ivanlw
2013-07-07 08:09:05 +08:00
@ejin 嗯,就是原生的Flask的session
@ixiaohei 那请问后来有解决吗?
@yibin001 你说的是Flask的吗?我官网搜diskstorage没有找到相关结果……
@yetone 根据您的提示,搜了下,好像这里说跟ip_hash没什么关系:http://www.oschina.net/question/658145_69044
julyclyde
2013-07-07 12:56:10 +08:00
你先说说部署情况再问
yibin001
2013-07-07 16:48:29 +08:00
@ivanlw
oh sorry ,是flask,我错觉成web.py了。 orz~
BOYPT
2013-07-08 14:56:18 +08:00
ip_hash没关系。

uwsgi默认开多个进程来服务,如果你的session机制不是跨进程共享数据的,比如用内存变量,就会这样。

所以,

1.用文件/数据库/memcache等独立于服务进程外的存储方式来做session的存储;
2.只启用一个进程(就如楼主自己弄那样)
ivanlw
2013-07-09 03:53:00 +08:00
@BOYPT 感谢已送出,如果单进程会影响性能吧?
julyclyde
2013-07-09 11:00:41 +08:00
@ivanlw 所以你只要把session机制改为数据库、文件、memcache之类的就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/74942

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX