V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ivanlw
V2EX  ›  Flask

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

  •  
  •   ivanlw ·
    tolinwei · 2013-07-06 13:01:17 +08:00 · 5338 次点击
    这是一个创建于 4186 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2013-07-07 08:13:36 +08:00
    昨天后来在uwsgi的的配置文件里面加一行processes=1就不再出现这个问题了,但是还是不理解为什么……
    还有另外一个疑惑,配置的时候如果用127.0.0.1:<port>来连nginx和uwsgi的话,超级容易出现502错误,但是换成/tmp/uwsgi.sock来连的话,就完全没有这个情况了……
    10 条回复    1970-01-01 08:00:00 +08:00
    ejin
        1
    ejin  
       2013-07-06 16:02:30 +08:00
    是不是有框架
    yibin001
        2
    yibin001  
       2013-07-06 16:11:05 +08:00
    有多台服务器?session是diskstorage模式?
    yetone
        3
    yetone  
       2013-07-06 20:26:23 +08:00 via Android
    多进程导致的,nginx 使用 ip_hash。
    ixiaohei
        4
    ixiaohei  
       2013-07-06 20:52:54 +08:00
    也碰过到,不知什么原因。开发的时候碰到的
    ivanlw
        5
    ivanlw  
    OP
       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
        6
    julyclyde  
       2013-07-07 12:56:10 +08:00
    你先说说部署情况再问
    yibin001
        7
    yibin001  
       2013-07-07 16:48:29 +08:00
    @ivanlw
    oh sorry ,是flask,我错觉成web.py了。 orz~
    BOYPT
        8
    BOYPT  
       2013-07-08 14:56:18 +08:00   ❤️ 2
    ip_hash没关系。

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

    所以,

    1.用文件/数据库/memcache等独立于服务进程外的存储方式来做session的存储;
    2.只启用一个进程(就如楼主自己弄那样)
    ivanlw
        9
    ivanlw  
    OP
       2013-07-09 03:53:00 +08:00
    @BOYPT 感谢已送出,如果单进程会影响性能吧?
    julyclyde
        10
    julyclyde  
       2013-07-09 11:00:41 +08:00   ❤️ 1
    @ivanlw 所以你只要把session机制改为数据库、文件、memcache之类的就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2911 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.