When running many KARLs behind one Apache, we need a way to update and restart one specific site without doing a graceful restart on all the rest. The restart might require coming up in a different “mode”.
We are moving to a model where all the KARLs run on one box, behind one Apache, in different WSGI app daemon processes. In a model like this, we need a way to update the software for one particular site, possibly displaying the maintenance page if it isn’t a “zero downtime” update.
In theory, we could simply do a graceful restart and the single site would change, as intended, while the other sites popped right back up. But we’d prefer not to do that. First, it would mean a lot more graceful restarts impacting each KARL site. This shouldn’t be a problem, but it’s still a lot of stress. Second, the first request to a view is slow, and it would be nice not to have those hit.
Of course, we’re able to make just one WSGI app reload. But the maintenance page is served by an Apache conf setting. We need a way to get a specific WSGI app into, and out of, various modes without restarting Apache.
Fortunately modwsgi gives us plenty of choices on this.