неоднозначное поведение переменных сеанса nginx / ruby / настройка тонкого сервера

#ruby #session #nginx #thin

#ruby #сеанс #nginx #тонкий

Вопрос:

Настройка веб-сервера: nginx / thin / ruby-sinatra

Я использую объект сеанса из ruby для хранения различной информации и возврата к path

 session[:username] = 'username' 
session[:token] = 'token'
session[:error] = '' 
session[:return_to] = '/start_page'
  

Проблема 1:

На моем сервере, если клиентом является IE, вся информация в объекте сеанса теряется при перезагрузке страницы. Firefox и Chrome работают нормально.

Если я возьму код веб-страницы сохранения и помещу его на другой сервер с той же настройкой, у меня вообще не возникнет проблем. Все 3 браузера (один и тот же клиент) работают хорошо и запоминают сеансы.

Что может пойти не так с настройкой? Почему только IE??

Проблема 2:

На моем сервере сеанс [:session_id] не инициализируется, пока я не установлю некоторую переменную для сеанса, но если я запускаю тот же код на другом сервере, сеанс [:session_id] доступен при первом доступе.

Почему существует разное поведение для полностью идентичных настроек??

Комментарии:

1. Пожалуйста, поддержите вопрос, если вы его просмотрели и не смогли ответить. Это приведет к большему количеству просмотров и, возможно, ответов. Спасибо.

2. Вы уверены, что обе настройки имеют одну и ту же версию sinatra? Они оба работают в одном и том же режиме? (производство, разработка). Также может помочь, если вы покажете нам еще немного своего кода. Например, я предполагаю, что вы используете Rack::Session::Cookie. Какие параметры вы передаете?

3. Я не знаю, что такое Rack ::Session::Cookie. Помимо кода в Q, все, что я использую, это метод enable :sessions в ruby configure .

4. Я проверил версии sinatra, у меня была 1.3.1, а у других машин, запоминающих сеансы, была 1.2.6. Я изменил свою на 1.2.6 all, и IE начинает работать! Проблема 1 решена. Спасибо.

5. Остается вопрос, почему sinatra 1.3.1 забывает сеансы для IE, это ошибка или я что-то упускаю?

Ответ №1:

Похоже, это ошибка sinatra 1.3.1, см. Комментарии К вопросу для разрешения