skip to navigation
skip to content

plone.recipe.pound 0.5.5

Recipe to install and configure Pound

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]

0.3.0

  • 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]

0.2.0

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

0.1.0

  • Initial release [tarek]

Building

supported options

The recipe supports the following options:

url
URL for an archive containing the Pound sources. Either url or svn has to be specified.
svn
URL for a subversion repository containing Pound sources. Either url or svn has to be specified.
ssl_dir
OpenSSL home directory (default: system defined).
t_rsa
timeout of the RSA ephemeral keys regeneration (default: 300 seconds).
owner
name of installed binaries owner (default is user that launch buildout).
group
name of installed binaries group (default is system-dependent)
extra-options
extra options for compilation

example usage

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

>>> write('buildout.cfg',
... """
... [buildout]
... parts = poundbuild
... index = http://pypi.python.org/pypi
...
... [poundbuild]
... recipe = plone.recipe.pound:build
... url = http://www.apsis.ch/pound/Pound-2.3.2.tgz
... """ )

Running the buildout gives us:

>>> print system(buildout)
Installing poundbuild.
poundbuild: compilation option : --with-owner=... --with-group=...
poundbuild: Downloading http://www.apsis.ch/pound/Pound-2.3.2.tgz
poundbuild: Unpacking and configuring
...

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  127.0.0.1:80 127.0.0.1:8080 127.0.0.1:8081,1
...    two  0.0.0.0:81 127.0.0.1:8082,1,120 127.0.0.1:8083 169.1.1.2:80
...
... """ )

Running the buildout gives us:

>>> print system(buildout)
Installing configpound.
<BLANKLINE>

Contributors

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

File Type Py Version Uploaded on Size # downloads
plone.recipe.pound-0.5.5.tar.gz (md5) Source 2009-06-04 16:13:19.954603 168KB 883

Log in to rate this package.

Package rating (1 vote): 5.0
  • 5 points: 1 vote

Ratings range from 0 to 5 (best).

Package Comments:
  • Highly customizable and simple load balancer, Plone buildout friendly (C.Bess, 2009-11-02, points)