两种设置。两种不同的结果。
设置 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 不够大,无法存储一些会话。