Hello,
Like most web applications, roundcube is intended to be used on a
single machine.
In a high load environment, simple LVS source ip balancing may not be
enough to simply dispatch evenly end users to several roundcube
instances.
I happen to have a situation where many customers (multiple 10s if not
100s) are logging in all at once and using the same proxy server,
hence all hitting the same backend roundcube machine.
It may be possible to get around this problem using a shared DB for
the session and use an NFS partition for the upload folder, but it
then creates single points of failure (and I happen to already have
some nginx reverse proxy installed).
In order to perform per user balancing of request, ticket 1485721 [1]
contains a small patch [2] to roundcube to add a new cookie to the
roundcube session.
This cookie can be used by nginx (for example) to perform a layer 7
routing of the request, an example of such configuration is attached
to the ticket [3]
This patch is used in production and is as harmless as harmless can
be. It does not change anything used by roundcube itself.
I would be interrested in hearing any comment the list may have about
it.
Another benefit for me is that it allowed me to go from an active/ passive lvs setup to an active/active one (using wackamole [4])
Regards,
Thomas Mangin
[1] http://trac.roundcube.net/ticket/1485721 [2] http://trac.roundcube.net/attachment/ticket/1485721/roundcube-nginx-cluster.... [3] http://trac.roundcube.net/attachment/ticket/1485721/nginx-config-example.txt [4] http://packages.ubuntu.com/hardy/net/wackamole _______________________________________________ List info: http://lists.roundcube.net/dev/