NAME
Perlbal::Manual::WebServer - Configuring Perlbal as a Web Server
VERSION
Perlbal 1.78.
DESCRIPTION
How to configure a Perlbal Web Server service.
READ ME FIRST
Please read Perlbal::Manual::Configuration first for a better explanation on how to configure Perlbal. This document will make much more sense after reading that.
Configuring Perlbal as a Web Server
By default, perlbal looks for a configuration file at /etc/perlbal/perlbal.conf.
You can also point perlbal at a different configuration file with the -c flag.
$ perlbal -c /home/user/perlbal.confHere's a very simple example where we configure a simple web server that serves an index file under /tmp
CREATE SERVICE perlbal_test
    SET role           = web_server
    SET listen         = 0.0.0.0:80
    SET docroot        = /tmp
ENABLE perlbal_testThe first line creates a service called perlbal_test. The last line enables that service.
The three parameters state - in order - that the service is a web server, that it listens on all addresses on port 80, and that its document root is /tmp.
Parameters
You can set parameters via commands of either forms:
SET <service-name> <param> = <value>
SET <param> = <value>- dirindexing = bool
- 
Show directory indexes when an HTTP request is for a directory. Warning: this is not an async operation, so will slow down Perlbal on heavily loaded sites. Default if false. 
- docroot = directory/root
- 
Directory root for web server. 
- enable_concatenate_get = bool
- 
Enable Perlbal's multiple-files-in-one-request mode, where a client have use a comma-separated list of files to return, always in text/plain. Useful for web apps which have dozens/hundreds of tiny css/js files, and don't trust browsers/etc to do pipelining. Decreases overall round-trip latency a bunch, but requires app to be modified to support it. See t/17-concat.t test for details. Default is false. 
- enable_md5 = bool
- 
Enable verification of the Content-MD5 header in HTTP PUT requests. Default is true. 
- enable_delete = bool
- 
Enable HTTP DELETE requests. Default is false. 
- enable_put = bool
- 
Enable HTTP PUT requests. Default is false. 
- index_files = comma-separated list of filenames
- 
Comma-separated list of filenames to load when a user visits a directory URL, listed in order of preference. Default is index.html. 
- max_put_size = size
- 
The maximum content-length that will be accepted for a PUT request, if enable_put is on. Default is 0, which means there is no limit. 
- min_put_directory = int
- 
If PUT requests are enabled, require this many levels of directories to already exist. If not, fail. Default is 0. 
- server_tokens = bool
- 
Whether to provide a "Server" header. Perlbal by default adds a header to all replies (such as the web_server role). By setting this default to "off", you can prevent Perlbal from identifying itself. Default is on.
SEE ALSO
Perlbal::Manual::Configuration, Perlbal::Manual::Management.