Sinatra cancela sessão no post

enable :sessions
set :session_secret, 'secret'

post '/login' do
        session[:loggedInUser] = jsondata['username'].to_s
        puts session[:loggedInUser] + " is the session"
end

Tudo está bem neste momento. Quando eu li a sessão assim:

get '/debug' do
    session.inspect
end

Está tudo lá. Mas aqui vem o problema. Quando eu vou para outra solicitação de postagem mais tarde:

post '/foo' do
    # do nothing
end

A sessão está desmarcada.

Por quê? Isso é um inseto?

EDITAR

Eu reduzi o problema: eu proxypassar o Sinatra através do nginx, parahttp://app.local/backend - isso é quando o problema ocorre. Se eu corro Sinatra atravéshttp://localhost:4567 tudo funciona como esperado.

SOLUÇÃO

UsarRack::Session::Cookie em vez do padrãoenable :sessions:

use Rack::Session::Cookie, :key => "rack.session",
:path => "/backend"
# etc

deSinatra FAQ:

Se você precisar definir parâmetros adicionais para sessões, como data de expiração, use Rack :: Session :: Cookie diretamente em vez de ativar: sessions:

questionAnswers(4)

yourAnswerToTheQuestion