Hi Ali,
> The big picture would be somehow storing the current state between the > user and the web server (independent of the actual web application) so > that it is restored (maintained) when one of the web servers goes down. > Consider current authenticated user sessions, content posting, etc. When > one of the active back-end web servers goes down, the logical connection > between the user and the web application is lost; the main question is how > is it possible to restore this logical connection when the other back-end > web server is used as a replacement by the load balancer? How is it > possible to synchronize user sessions, file downloads, active logins, etc. > between two master/backup web servers so that the client never feels the > switchover? Everything you are asking needs to be addressed on the application side (by fully synchronizing the backends). The load-balancer/reverse proxy (even a Barracuda) can by definition *not* do anything about this. What the load-balancer can do is to make sure a specific client always hits the same backend. Consider this: Bob is logged into your application, and HAProxy (or the barracuda unicorn load-balancer) forwards all of Bob's requests to backend server 1 (for example by using the cookie). Now backend server 1 fails completely. The load-balancer/reverse proxy may failover Bob to backend server 2 and it will also maintain the cookie. But if backend server 2 doesn't know howto handle Bob, because server 1 had the session data, then Bob has to restart his session. If, on the other hand, backend server 1 and backend server 2 share the same session data (or synchronize them somehow), then everything is fine. But its not something a load-balancer can achieve, its your application that has to do this. Regards, Lukas