Skip to main content

Recipe to install and configure Pound

Project description

Change history

trunk (2009-06-02)

  • xxx [Ingeniweb]

0.5.5 (2009-06-02)

  • cmmi change extra_options configuration [youenn]

0.5.4 (2008-12-12)

  • Add new options to configure sticky session [youenn]

0.5.3 (2008-10-23)

  • fix regression in fetching current group [youenn]

  • poundctl restart need to use the right config file as well [jensens]

  • In term of portability, bash scripts now use env to get their shell.

  • The poundctl script overrides the control binary present in $prefix/sbin. So are introduced options to fix that problem: (kiorky)

    • A poundcontrol script is added to wrap the real poundctl binary.

    • Customize the names of generated scripts. To use them, simply add poundctl-binary, poundrun-binary, poundcontrol-binary to your options.

0.5.1 (2008-07-08)

  • fix bug in fecthing current group [youenn]

0.5.0 (2008-07-07)

  • rename iw.recipe.pound to plone.recipe.pound [youenn]

  • fix doctests [youenn]

  • add socket option [mathieu pasquet]

  • config recipe now additionally creates “poundrun” script which merely runs configured pound executable with correct configuration [rockyburt]

  • fetching current running user is now more robust [rockyburt]

0.4.1 (2008-07-02)

  • fix Cheetah require [youenn]

0.4.0 (2008-06-26)

  • add a ctl script (as plone.recipe.squid) [youenn]


  • devide recipe in two part : build and config part [youenn]

  • add options to build (extra-options) [youenn]

  • add options to the config file (time-out, priority …) [youenn]


  • added a script to launch pound with the right conf file [tarek]


  • Initial release [tarek]

Detailed Documentation


supported options

The recipe supports the following options:


URL for an archive containing the Pound sources. Either url or svn has to be specified.


URL for a subversion repository containing Pound sources. Either url or svn has to be specified.


OpenSSL home directory (default: system defined).


timeout of the RSA ephemeral keys regeneration (default: 300 seconds).


name of installed binaries owner (default is user that launch buildout).


name of installed binaries group (default is system-dependent)


extra options for compilation

example usage

We’ll start by creating a buildout that uses the recipe:

>>> write('buildout.cfg',
... """
... [buildout]
... parts = poundbuild
... index =
... [poundbuild]
... recipe = plone.recipe.pound:build
... url =
... """ )

Running the buildout gives us:

>>> print system(buildout)
Installing poundbuild.
poundbuild: compilation option : --with-owner=... --with-group=...
poundbuild: Downloading
poundbuild: Unpacking and configuring


Supported options

The recipe supports the following options:

daemon - Daemon 0|1

Have Pound run in the foreground (if 0) or as a daemon (if 1). By default Pound runs as a daemon (detaches itself from the controlling terminal and puts itself in the background). By specifying this option you can force Pound to work like a regular process. Useful for debugging or if you want to use something like daemontools.

log_facility - LogFacility value

Specify the log facility to use. value (default: daemon) must be one of the symbolic facility names defined in syslog.h. This facility shall be used for logging. Using a - for the facility name causes Pound to log to stdout/stderr.

log_level - LogLevel value

Specify the logging level: 0 for no logging, 1 (default) for regular logging, 2 for extended logging (show chosen backend server as well), 3 for Apache-like format (Combined Log Format with Virtual Host), 4 (same as 3 but without the virtual host information) and 5 (same as 4 but with information about the Service and BackEnd used). This value can be overridden for specific listeners.

dynscale - DynScale 0|1

Enable or disable the dynamic rescaling code (default: 0). If enabled Pound will periodically try to modify the back-end priorities in order to equalise the response times from the various back-ends. This value can be overridden for specific services.

alive - Alive value

Specify how often Pound will check for resurected back-end hosts (default: 30 seconds). In general, it is a good idea to set this as low as possible - it will find resurected hosts faster. However, if you set it too low it will consume resources - so beware.

client - Client value

Specify for how long Pound will wait for a client request (default: 10 seconds). After this long has passed without the client sending any data Pound will close the connection. Set it higher if your clients time-out on a slow network or over-loaded server, lower if you start getting DOS attacks or run into problems with IE clients. This value can be overridden for specific listeners.

timeout - TimeOut value

How long should Pound wait for a response from the back-end (in seconds). Default: 15 seconds.

grace - Grace value

How long should Pound continue to answer existing connections after a receiving and INT or HUP signal (default: 30 seconds). The configured listeners are closed immediately. You can bypass this behaviour by stopping Pound with a TERM or QUIT signal, in which case the program exits without any delay.

balancers - list of listener http with backend

Set the list of backends, the list by default is name adress:port adress-backend-1:port-backend-1(,priority,timeOut) adress-backend-2:port-backend-2(,priority,timeOut) … adress-backend-n:port-backend-n(,priority,timeOut)

executable - path to pound, required if pound executable is not provided by the build recipe

socket - Set the control socket path.

sticky - if on , add a sticky session configuration (default on, possible value on/off)

sessiontype - Type of the sticky session (default COOKIE)

sessioncookie - Name of the cookie of the stickysession (default __ac)

sessiontimeout - Time out of the sticky session (default 300)

poundctl-binary - Set the init script name poundrun-binary - Set the daemon binary name poundcontrol-binary - Set the pound controller name (it wraps the pound’s poundctl binary)

Example usage

We’ll start by creating a buildout that uses the recipe:

>>> write('buildout.cfg',
... """
... [buildout]
... parts = configpound
... [configpound]
... recipe = plone.recipe.pound:config
... executable = /usr/sbin/pound
... balancers =
...    one,1
...    two,1,120
... """ )

Running the buildout gives us:

>>> print system(buildout)
Installing configpound.


ingeniweb Internal sprint 2008 Tarek Ziade Youenn Boussard Rocky Burt Mathieu Pasquet


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plone.recipe.pound-0.5.5.tar.gz (172.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page