<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>plone.recipe.pound</name>
<shortdesc>Recipe to install and configure Pound</shortdesc>
<description>.. contents::

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

    &gt;&gt;&gt; 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::

    &gt;&gt;&gt; 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::

    &gt;&gt;&gt; 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::

    &gt;&gt;&gt; print system(buildout)
    Installing configpound.
    &lt;BLANKLINE&gt;


Contributors
************

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


Download
********</description>
<homepage rdf:resource="http://plone.org/products/plone-recipes" />
<maintainer><foaf:Person><foaf:name>Ingeniweb</foaf:name>
<foaf:mbox_sha1sum>ce647768fc2915c7851be5591bf96a90966761ef</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>0.5.5</revision></Version></release>
</Project></rdf:RDF>