【问题标题】:web.py sessions renew every reload under apache (cgi/wsgi)web.py 会话在 apache (cgi/wsgi) 下更新每次重新加载
【发布时间】:2014-02-27 18:07:39
【问题描述】:

我有一个需要会话的 web.py 网站;

当使用 web.py 的内置网络服务器时,网站的会话可以完美运行,例如

./server.py
http://my.server:8080/cgi/server.py/

对于生产,我使用 apache2 和 python 作为 cgi。

在此配置下运行时,会话不会按应有的方式重用;

相反,在每次重新加载时,我会看到另外 2 个会话文件(或 db 记录)被添加到会话目录/mysql 表中(取决于我如何配置它)

我尝试了以下配置,结果相同:

  • 作为 apache cgi
  • 作为 apache mod_wsgi
  • 以会话作为磁盘存储
  • 将会话作为 mysql 数据表(每次重新加载时插入 1 到 3 条记录)
  • 一年前的 web.py
  • 最新的 web.py 来自源代码

我在同一个网络服务器上运行了 web.py 和会话安装,它可以工作,所以我很困惑。

我的设置是:

  • ubuntu 12.04
  • 标准灯(linux/apache/mysql)
  • 最新的 web.py 3.x

关于为什么会话在 apache 下不被记住/重用的任何线索?

解决方案!

为了解决这个问题,我必须为 cookie_path 赋予价值

web.config.session_parameters['cookie_path'] = '/'

另外,请注意上面的行必须在会话初始化代码之前,即

web.config.session_parameters['cookie_path'] = '/'
(...)
sess = web.session.Session(app, web.session.DiskStore('sessions'), initializer=INIT)

【问题讨论】:

    标签: python apache session web.py


    【解决方案1】:

    你也可以分享你的python代码吗?我知道我在未设置 cookie 路径时遇到了同样的问题。

    【讨论】:

    • 正如@victorkohler 所说,这确实是cookie 路径,这在apache 和web.py 自己的服务器之间有所不同。我已经将它设置为“/”,现在它可以工作了。 (我会推荐 Aaron 把它写在他的 wiki 中)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 2014-03-18
    • 2017-09-23
    • 2018-07-04
    • 1970-01-01
    • 2019-11-07
    相关资源
    最近更新 更多