#docker #redis #flask-session
#docker #redis #сеанс flask
Вопрос:
Две настройки. Два разных результата.
Настройка 1: приложение Flask работает в режиме разработки, redis работает в локальном контейнере.
Данные сеанса сохраняются во всех запросах.
Настройка 2: приложение Flask, запущенное на экземпляре AWS EC2 в контейнере, с redis, запущенным в контейнере в среде docker-compose с контейнером nginx в среде docker compose.
Некоторые данные сеанса не сохраняются между запросами.
Самое интересное, что если я сохраняю сеанс в файле cookie, система работает должным образом, и все состояние сохраняется в Setup 2.
Не уверены ни в одном из следующих:
- почему некоторые элементы сеанса сохраняются, а другие нет.
- почему это работает локально повторно, а не на экземпляре EC2.
- Что происходит не так и (надеюсь) как я это исправляю или отлаживаю.
ОБНОВЛЕНИЕ:
конфигурация сеанса для сеанса на стороне сервера:
PERMANENT_SESSION_LIFETIME = 600
SESSION_TYPE = 'redis'
SESSION_REDIS = redis.from_url('redis://redis')
который является частью конфигурации приложения.
Кроме этого, я настроил сеанс flask с
from flask_session import Session
app = Flask(__name__)
Session(app)
(по модулю стандартного кода, используемого для создания приложения.) Удаление вызова Session(app)
и конфигурации исправляет сеанс, не удаляющий данные. Мне нужно использовать redis, потому что файл cookie сеанса недостаточно велик для хранения некоторых сеансов.
Комментарии:
1. Можете ли вы предоставить некоторые подробности (код) о том, как вы реализовали сеансы, — это неправильная конфигурация, а не то, как вы сохранили эти данные в файле cookie.
2. Хороший момент @ v25 Надеюсь, что этого достаточно.
3. Да, хотя я не совсем уверен, что может быть причиной этого, как раздражает. У вас случайно нет ссылки на репозиторий для вашего кода?