我知道这个问题可能有点晦涩难懂,甚至可能不在正确的堆栈交换中。所以我要从这里开始。
我正在flask
跑步flask-session
redis
我的应用程序配置设置SESSION_TYPE
为“redis”
我也u-msgpack-python
用于与 PHP 与pickle
in的兼容性flask_session/session.py
(在 dist 包中手动更改),但这似乎与它是否有效无关。
在 Debian 9 或 Ubuntu 16.04 上运行此配置时,一切正常。(还有 Python 3.4 或 3.5,以及 PHP 7.0,以及 Apache 或 Nginx(两者都可以))
但是,当我使用 Python 3.6 在 Ubuntu 18.04 上运行完全相同的代码库时,它不会保留会话。
会话 cookie 名称是PHPSESSID
,键前缀是PHPSESSID:
但是..当我将 cookie 名称更改为类似的名称时MYSESSID
,一切正常并在 Ubuntu 18.04 上保持会话。一旦我将其更改为 晒PHPSESSID
,它就无法举行会议。
我已经监控了 Redis 服务器,我可以看到会话带有数据,所以我知道它正在正常通信。
其他信息:
运行:Nginx 1.14.0、Python 3.6、Ubuntu 18.04、PHP 7.2
任何方向或见解都会有所帮助。也许是PHP版本?
如有必要,请随意更改标签,或询问更多信息,我会尽可能提供。我对服务器具有完全的 root 访问权限。