Perlbal
view release on metacpan or search on metacpan
doc/service-parameters.txt view on Meta::CPAN
Perlbal Service parameters
Set via commands of either forms:
SET <service-name> <param> = <value>
SET <param> = <value>
Note on types: 'bool' values can be set using one of 1, true, yes, on, 0,
false, off, or no. 'size' values are in integer bytes, or an integer
followed by 'b', 'k', or 'm' (case-insensitive) for bytes, KiB, or MiB.
Note that you can set defaults for all services you create by using the
DEFAULT command:
DEFAULT <param> = <value>
For all services:
+----------------------------------------------------------------------------------+
| Param |type| Default | Description |
|---------------------------+----+---------------------+---------------------------|
| | | |Whether to trust all |
| | | |incoming requests' |
| | | |X-Forwarded-For and related|
|always_trusted |bool|false |headers. Set to true only |
| | | |if you know that all |
| | | |incoming requests from your|
| | | |own proxy servers that |
| | | |clean/set those headers. |
|---------------------------+----+---------------------+---------------------------|
|client_sndbuf_size |size|0 |How large to set the |
| | | |client's socket SNDBUF. |
|---------------------------+----+---------------------+---------------------------|
|enable_ssl |bool|false |Enable SSL to the client. |
|---------------------------+----+---------------------+---------------------------|
| | | |Timeout in seconds for idle|
|idle_timeout |int |30 |connections to the end user|
| | | |(default is 30) |
|---------------------------+----+---------------------+---------------------------|
| | | |The ip:port to listen on. |
| | | |For a service to work, you |
|listen | | |must either make it listen,|
| | | |or make another selector |
| | | |service map to a |
| | | |non-listening service. |
|---------------------------+----+---------------------+---------------------------|
| | | |The maximum size that will |
| | | |be accepted for a chunked |
| | | |request. Default is 200MB |
|max_chunked_request_size |size|209715200 |(which is written to disk, |
| | | |buffered uploads must be |
| | | |on). A value of 0 means no |
| | | |limit. |
|---------------------------+----+---------------------+---------------------------|
| | | |Whether to enable HTTP |
|persist_client |bool|false |keep-alives to the end |
| | | |user. |
|---------------------------+----+---------------------+---------------------------|
| | | |Timeout in seconds for HTTP|
|persist_client_idle_timeout|int |30 |keep-alives to the end user|
| | | |(default is 30) |
|---------------------------+----+---------------------+---------------------------|
| | | |Set both the |
|persist_client_timeout |int | |persist_client_idle_timeout|
| | | |and idle_timeout |
| | | |(deprecated) |
|---------------------------+----+---------------------+---------------------------|
| | | |What type of service. One |
| | | |of 'reverse_proxy' for a |
| | | |service that load balances |
| | | |to a pool of backend |
| | | |webserver nodes, |
| | | |'web_server' for a typical |
|role | | |webserver', 'management' |
| | | |for a Perlbal management |
| | | |interface (speaks both |
| | | |command-line or HTTP, |
| | | |auto-detected), or |
| | | |'selector', for a virtual |
| | | |service that maps onto |
| | | |other services. |
|---------------------------+----+---------------------+---------------------------|
|server_tokens |bool|true |Whether to provide a |
| | | |"Server" header. |
|---------------------------+----+---------------------+---------------------------|
| | | |Path to directory |
|ssl_ca_path | | |containing certificates for|
| | | |SSL. |
|---------------------------+----+---------------------+---------------------------|
|ssl_cert_file | |certs/server-cert.pem|Path to certificate PEM |
| | | |file for SSL. |
|---------------------------+----+---------------------+---------------------------|
|ssl_cipher_list | |ALL:!LOW:!EXP |OpenSSL-style cipher list. |
|---------------------------+----+---------------------+---------------------------|
|ssl_key_file | |certs/server-key.pem |Path to private key PEM |
| | | |file for SSL. |
|---------------------------+----+---------------------+---------------------------|
|ssl_verify_mode |int |0 |SSL verification mode |
|---------------------------+----+---------------------+---------------------------|
| | | |A comma separated list of |
| | | |Net::Netmask filters (e.g. |
| | | |10.0.0.0/24, see |
| | | |Net::Netmask) that |
|trusted_upstream_proxies | | |determines whether upstream|
| | | |clients are trusted or not,|
| | | |where trusted means their |
| | | |X-Forwarded-For/etc headers|
| | | |are not munged. |
+----------------------------------------------------------------------------------+
Only for 'reverse_proxy' services:
+-------------------------------------------------------------------------------+
| Param |type| Default | Description |
|-----------------------------+----+-------------------+------------------------|
| | | |The number of backend |
|backend_persist_cache |int |2 |connections to keep |
| | | |alive on reserve while |
| | | |there are no clients. |
|-----------------------------+----+-------------------+------------------------|
| | | |Flag to disable any |
| | | |modification of |
|blind_proxy |bool|false |X-Forwarded-For, X-Host,|
| | | |and X-Forwarded-Host |
| | | |headers. |
|-----------------------------+----+-------------------+------------------------|
| | | |How much content-body |
| | | |(POST/PUT/etc) data we |
| | | |read from a client |
| | | |before we start sending |
| | | |it to a backend web |
| | | |node. If |
|buffer_backend_connect |size|100k |'buffer_uploads' is |
| | | |enabled, this value is |
| | | |used to determine how |
| | | |many bytes are read |
| | | |before Perlbal makes a |
| | | |determination on whether|
| | | |or not to spool the |
| | | |upload to disk. |
|-----------------------------+----+-------------------+------------------------|
| | | |How much we'll ahead of |
| | | |a client we'll get while|
| | | |copying from a backend |
|buffer_size |size|256k |to a client. If a client|
| | | |gets behind this much, |
| | | |we stop reading from the|
| | | |backend for a bit. |
|-----------------------------+----+-------------------+------------------------|
| | | |How much we'll get ahead|
| | | |of a client we'll get |
| | | |while copying from a |
| | | |reproxied URL to a |
| | | |client. If a client gets|
| | | |behind this much, we |
| | | |stop reading from the |
| | | |reproxied URL for a bit.|
| | | |The default is lower |
| | | |than the regular |
|buffer_size_reproxy_url |size|50k |buffer_size (50k instead|
| | | |of 256k) because it's |
| | | |assumed that you're only|
| | | |reproxying to large |
| | | |files on event-based |
| | | |webservers, which are |
| | | |less sensitive to many |
| | | |open connections, |
| | | |whereas the 256k buffer |
| | | |size is good for keeping|
| | | |heavy process-based free|
| | | |of slow clients. |
|-----------------------------+----+-------------------+------------------------|
| | | |If an upload is coming |
| | | |in at a rate less than |
|buffer_upload_threshold_rate |int |0 |this value in bytes per |
| | | |second, it will be |
| | | |buffered to disk. Set to|
| | | |0 to not check rate. |
|-----------------------------+----+-------------------+------------------------|
| | | |If an upload is larger |
| | | |than this size in bytes,|
|buffer_upload_threshold_size |size|250k |it will be buffered to |
| | | |disk. Set to 0 to not |
( run in 1.372 second using v1.01-cache-2.11-cpan-99c4e6809bf )