I’ve setup a OOD active/active/active cluster - three machines using etcd for session storage, sitting behind HAProxy. HAProxy is configured for sticky sessions via cookie.
Most of the time this works great, but occasionally a user tries to connect from another device and HAProxy, not seeing an existing cookie, allocates them a different backend OOD server which then attempts to start a new PUN. This results in ‘504 Gateway Time-out’.
At present the only fix we’ve found is to go around the backend hosts and kill off the PUNs.
We’re beginning to think that active-passive may be the only solution if we are to support users connecting from multiple devices, but I thought I’d ask in case someone has come up with a solution. Of course full support in OOD for HA would be great.
Hashing in this manner looks to be possible, but I need some way of detecting the username.
Options include URI (not going to work as varies by location within the interface), url_param - a particular parameter in the query string (doesn’t appear to be any), hdr checking against a header.
‘hdr’ looks like the only viable option, but all we have is the session ID in the cookies and that will change per-login session so I don’t see how that helps.
What’s annoying is that it doesn’t always fail, I’ve just launched two logins on two separate web browsers, been allocated two backends and it’s just working (viewing an interactive session in both browsers at the same time is ‘interesting’).