Package: isotoma.recipe.pound
Pound buildout recipeThis package provides buildout_recipes for the configuration ofpound.  This
is a more fully featured recipe than others we’ve found on PyPI, and supports
things like 500 error pages, emergency servers and configurable affinity.We use the system pound, so this recipe will not install pound for you.  If you
wish to install pound, usezc.recipe.cmmiperhaps.An example of a standard setup:[pound]
recipe = isotoma.recipe.pound
address = 127.0.0.1
port = 8080
session = COOKIE:_ZopeID:3600
err500 = /var/www/emergency/index.html
emergency = 127.0.0.1:8090
backends =
    127.0.0.1:8081
    127.0.0.1:8082
    127.0.0.1:8083If you use pound or another loadbalancer, you might findisotoma.recipe.portmapuseful too.Mandatory parametersaddressThe address on which to listen for connectionsportThe port on which to listen for connectionsbackendsA list of backends, supplied asaddress:portpairs, separated by whitespaceOptional parametersexecutableThe path to the pound binary.  Defaults to/usr/sbin/pound.poundctlThe path to the poundctl binary.  Defaults to/usr/sbin/poundctl.userThe user to run pound as.  Defaults towww-data.groupThe group to run pound as.  Defaults towww-data.logfacilityThe syslog facility to which to send log output.  Defaults tolocal0.loglevelThe logging level.  Defaults to ‘2’.aliveThe number of seconds between checks for aliveness of previously dead backends.  Defaults to ‘30’.timeoutThe timeout for HTTP requests to a backend.  Defaults to ‘60’.xHTTPWhich verbs are accepted.  See the pound manual for more details.  Defaults to ‘0’ (accept only standard verbs).templateThe full path to the configuration file template, if you want to customise further.  Defaults to pound.cfg template in this package.sessionIf you wish to have session affinity, provide the configuration here astype:id:TTL.emergencyIf you use an emergency server, provide the configuration here asaddress:port.err500If you wish to provide an error 500 page, provide the full path here.err503If you wish to provide an error 503 page, provide the full path here.Emergency ServersRecipes are also included to help construct emergency pages.  Pound’s support
for emergency serving is pretty rudimentary, so it needs some help to provide a
decent service.  The emergency recipe:provides an apache configuration suitable for use in this situationprocesses the index page of the emergency content with a simple string substitution, so the image and css resources can be locatedThe index page of the emergency server is suitable for using in the err500
directive as well.To use this, you should first create a directory containing an index.html page,
and whatever resources are needed to serve this page from apache.  In the
template, refer to all resouces using$baseurl. For example, if we have:htdocs/index.html
htdocs/images/logo.pngthen inindex.htmlput:<html>
    <body>
        <img src="$baseurl/images/logo.png" />
    </body>
</html>Then provide a recipe like:[emergency]
recipe = isotoma.recipe.pound:emergency
path = /path/to/htdocs
interfaces =
    127.0.0.1:8090
    32.32.32.32:emerg.example.com:80
listen = yes
public = http://www.emerg.example.com
access_log = /var/log/apache2/help.help.access.log
error_log = /var/log/apache2/help.help.error.log
substitute = index.html$baseurlwill be replaced with the value of public.This might seem like an overly convoluted way of setting up something
relatively simple, but if you want valid and testable configurations in
continuous integration, staging and production environments this is worth
the effort.Changelog0.1.13 (2013-01-28)Nothing changed yet.0.1.12 (2013-01-21)Make sure the cycle script is run as run and only when there is a pound socket.0.1.11 (2012-10-25)Don’t invoke poundctl when working out which backends to use. This avoids the
whole issue of crappy pound XML that python2.4 can’t parse.0.1.10 (2012-10-14)Refactor resuable cycle logic into a Backend class.Ensure the listen address is in correct state before moving onto next
backend.You can optionally poke URL’s on the backend to ensure it has started.0.1.9 (2012-10-01)Add a default emergency page.0.1.8 (2012-07-03)No changes - release to fix version sync weirdness?0.1.7 (2012-07-03)Restore python2.4 compatibility0.1.6 (2012-02-03)Better handling of migrations to ${buildout:run-directory}0.1.5 (2011-08-26)If there is a ${buildout:run-directory}, put pid file in there