Recipe to install and configure Pound
Project description
Code repository: https://svn.plone.org/svn/collective/buildout/plone.recipe.pound
Bug tracker: http://trac.ingeniweb.com/
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]
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=... --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
Download
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.