I'm currently setting up load balancing for my Plone (still 4.3) site. Currently it doesn't use ZEO but RelStorage, but when it comes to Load Balancing, this shouldn't make any difference, right?
My site is accessible over 3 different hostnames (plus optional www.
prefixes which are done by redirection-only mini-host); multiplied by two protocols (http and https), this results in six virtual hosts. That's no maintenance problem, since those six hosts are generated by macros, and so the configuration is in synch automatically.
However, when changing to a load balancing setup, some questions arise.
First - should I unite my virtual hosts and put them all in one? Reasons I could imagine:
- One place to enable or disable worker processes (/balancer-manager) instead of six;
- http hosts could be managed by TLS-secured balancer manager;
- worker processes (which are common to all those hosts) probably shouldn't be attached to more than one balancer
- server resources considerations: Does it make a difference for Apache whether I have one load balancer or six?
Reasons not to do so:
- Currently I don't need to use variables for
%{HTTP_HOST}
and the like; this kind of information is created during macro expansion, i.e. at configuration load time; - same for conditional redirections, e.g. to enforce HTTPS for login forms and management views.
- (edit: added) cached pages contain slightly different contents depending on the hostname, e.g. different logo graphics, but as well different contents subsets
Is it possible and/or desirable to have a VirtualHost serve both HTTP and HTTPS (e.g. using SSLEngine optional
? (the <VirtualHost> directive can take more then one ip:port specification)
How would I configure stickyness, and would I e.g. need to install plone.app.caching
?
Links, so far: