Proxying to node.js + express.js, session doesn't persist

Maxim Dounin mdounin at mdounin.ru
Thu Jul 21 20:52:27 UTC 2011


Hello!

On Thu, Jul 21, 2011 at 12:28:39PM -0400, ilya wrote:

> > Are you see sessions not being flacky while working directly with
> > your backend?
> 
> Correct. I've tested backend standalone and this doesn't happen. Notice,

So try to figure out what goes wrong.  Dumping all of a session 
requests till session break may be helpful, as well as dumping all 
of the requests between nginx and your backend.

Instrumenting your backend's code may be helpful as well (or even 
easier).

> that in requests above connect.sid is changing every request. That is
> not supposed to happen - with standalone backend connect.sid value is
> constant across requests and changes either when user re-logins or it
> expires.

All of the requests you've provided have identical connect.sid as 
far as I see.

> Can it be because nginx talks HTTP/1.0 to backend?.. Ugh.

This may be a problem if e.g. your backend is multi-process, while 
session store is local to process.  With HTTP/1.1 and keepalive 
you'll be most likely talking to one process over established 
connection (and everything seems to work ok), while though nginx 
there will be new connection to your backend for each request and 
you'll be talking to many backend processes (and you'll see 
"flacky" sessions as described).  This is a typical example of 
"something wrong with session storage on backend side" as 
mentioned in previous message.

Maxim Dounin



More information about the nginx mailing list