1

两种设置。两种不同的结果。

设置 1:Flask 应用程序在开发模式下运行,redis 在本地容器中运行。

会话数据在请求中持续存在。

设置 2:在容器中的 AWS EC2 实例上运行的 Flask 应用程序,在 docker-compose 环境中的容器中运行 redis,在 docker compose 环境中使用 nginx 容器。

某些会话数据无法在请求之间保留。

令人兴奋的是,如果我将会话存储在 cookie 上,系统会按预期工作,并且所有状态都存储在设置 2 中。

不确定以下任何一项:

  • 为什么某些会话项目持续存在而其他会话项目不存在。
  • 为什么这可以在本地重复而不是在 EC2 实例上工作。
  • 出了什么问题以及(希望)我如何修复或调试它。

更新:
服务器端会话的会话配置:

PERMANENT_SESSION_LIFETIME = 600
SESSION_TYPE = 'redis'
SESSION_REDIS = redis.from_url('redis://redis')

这是应用程序配置的一部分。除此之外,我设置了烧瓶会话

from flask_session import Session
app = Flask(__name__)
Session(app)

(模用于创建应用程序的样板代码。)删除调用Session(app)和配置修复会话不丢弃数据。我需要使用 redis,因为会话 cookie 不够大,无法存储一些会话。

4

0 回答 0