I’m proud to present a module, already mentioned on the list a few days
by Grzegorz N., that provides nginx with API to communicate with
Initial release adds the ability to START and STOP backends (or any
programs) on demand. If supervisord’s [program:backend0] entry is
with “startsecs” parameter, then supervisord (and ngx_supervisord) will
that time before returning successful or failed status. This is of
done in asynchronous way, so it doesn’t halt nginx for a moment.
This simple feature, combined with load-aware load balancers (like
Nosek’s nginx-upstream-fair) can offer very powerful features (starting
first backend when the first request arrives, starting/stopping backends
demand, depending on the load, etc, etc). Patch for nginx-upstream-fair
included in the release and it shows how easy all of this can be
Current version allows only one module to “register” its monitors with
ngx_supervisord, but as soon as there will be need for more (read: other
modules will start using ngx_supervisord), this will be changed without
changes in the API.
2010-04-29 VERSION 1.4
* Send shutdown command to supervisord on backend failure
and try to bring back first backend after all backends fail.
This is default and non-configurable behavior.
Requested by Grzegorz N…
2009-11-19 VERSION 1.2
* Don’t run “monitors” on “cache manager” and “cache loader”
processes (this could lead to crash of either of them
when ngx_supervisord-enable load balancer tried to access
data available only on “worker” processes).
NOTE: This modification uses undocumented nginx's "feature"
to distinguish mentioned processes and starting from this
release "worker_connections" cannot be set to 512 (it can be
set to either lower or higher number, just not equal to 512).