Skip to main content

Recipe to install and configure Pound

Project description

Change history

trunk (2008-10-23)

  • xxx [Ingeniweb]

0.5.3 (2008-10-23)

  • fix regression in fetching current grounp [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]

Detailed Documentation

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=youenn --with-group=youenn
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.

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

Download

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.3.tar.gz (171.4 kB view hashes)

Uploaded Source

Built Distribution

plone.recipe.pound-0.5.3-py2.4.egg (180.4 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