Skip to main content

Pound buildout recipe

This package provides buildout_recipes for the configuration of pound. 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, use zc.recipe.cmmi perhaps.

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:8083

If you use pound or another loadbalancer, you might find isotoma.recipe.portmap useful too.

Mandatory parameters

address

The address on which to listen for connections

port

The port on which to listen for connections

backends

A list of backends, supplied as address:port pairs, separated by whitespace

Optional parameters

executable

The path to the pound binary. Defaults to /usr/sbin/pound.

poundctl

The path to the poundctl binary. Defaults to /usr/sbin/poundctl.

user

The user to run pound as. Defaults to www-data.

group

The group to run pound as. Defaults to www-data.

logfacility

The syslog facility to which to send log output. Defaults to local0.

loglevel

The logging level. Defaults to ‘2’.

alive

The number of seconds between checks for aliveness of previously dead backends. Defaults to ‘30’.

timeout

The timeout for HTTP requests to a backend. Defaults to ‘60’.

xHTTP

Which verbs are accepted. See the pound manual for more details. Defaults to ‘0’ (accept only standard verbs).

template

The full path to the configuration file template, if you want to customise further. Defaults to pound.cfg template in this package.

session

If you wish to have session affinity, provide the configuration here as type:id:TTL.

emergency

If you use an emergency server, provide the configuration here as address:port.

err500

If you wish to provide an error 500 page, provide the full path here.

err503

If you wish to provide an error 503 page, provide the full path here.

Emergency Servers

Recipes 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 situation

  • processes the index page of the emergency content with a simple string substitution, so the image and css resources can be located

The 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.png

then in index.html put:

<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

$baseurl will 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.

Changelog

0.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 compatibility

0.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

Release files for isotoma.recipe.pound 0.1.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for isotoma.recipe.pound 0.1.13
File Size Uploaded
isotoma.recipe.pound-0.1.13.zip 21.0 kB Details

Release files / isotoma.recipe.pound-0.1.13.zip

Download URL isotoma.recipe.pound-0.1.13.zip
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e63eda4179258af3527a18408893582e50b45e7a81228d610b38bac722373e85
BLAKE2b-256 checksum
How to use checksums
c03b5ce601302c71a3c7bc3ffbf8fc72d749be5144a5ae15a47bf5f5e4ca1679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.13 This release

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

2 release files

0.1.6

1 release file

0.1.5

1 release file

0.0.15

1 release file

0.0.14

1 release file

0.0.13

1 release file

0.0.12

1 release file

0.0.11

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

0.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page