Sharing sessions between different servers behind an nginx reverse proxy

2.6k views Asked by At

Wondering if we can share session data between two servers (running different code) behind an Nginx reverse proxy.

To be precise, we have a legacy app in PHP running on an apache server. We are updating some functionality and hosting only that functionality on a separate server (nginx). Both apps update the same DB.

nginX uses load balancing/ reverse proxy URL rewritting techniques to decide which server to send the client to based on the URL path they use.

  • So, a person can add items to his virtual basket (held in session) on the new server application.
  • He then decides to edit his personal information which is on the other server (Legacy).
  • Nginx uses it's reverse proxy/load balancing magic to decide which server to send the person to based on where an app is available.

The question is, how can a session created on one app server be available to another app server aswell? is it possible to setup the reverse proxy to store all session data and how. Please point me to the right direction of you can help with google links aswell.

1

There are 1 answers

0
Maurizio Benedetti On

your question has several possible answers. It all depends on the way the application is designed.

A possible scenario would be to keep session information on a database shared among different web heads. In this way the client, once authenticated will retrieve its "session status" regardless which server he is accessing in the final servers cluster backend.

Again, this depends very much on the way the application is/has been designed.

I think there is very little magic you can do on an old legacy application just by configuring the reverse proxy engine.

In the end, sessions are handled by the application server and not the proxy frontend.