Provided by: boa_0.94.14rc21-5_amd64 bug

NAME

       boa - a single-tasking high performance http server

SYNOPSIS

       boa [-c server_root] [-r chroot] [-d]

DESCRIPTION

       Boa is a single-tasking HTTP server. That means that unlike traditional web servers, it does not fork for
       each  incoming  connection,  nor  does  it  fork many copies of itself to handle multiple connections. It
       internally multiplexes all of the ongoing HTTP connections, and forks only for CGI programs  (which  must
       be separate processes.) Preliminary tests show Boa is more than twice as fast as Apache.

       The  primary design goals of Boa are speed and security. Security, in the sense of "can't be subverted by
       a malicious user", not "fine grained access control and encrypted communications". Boa is not intended as
       a feature-packed server; if you want one of those, check out WN from John Franks.  Modifications  to  Boa
       that  improve its speed, security, robustness, and portability, are eagerly sought. Other features may be
       added if they can be achieved without hurting the primary goals.

OPTIONS

       -d     instruct Boa not to fork itself (non-daemonize).

       -c server_root
              choose a server root overriding the default SERVER_ROOT #define in defines.h

              The server root must hold your local copy of the configuration file

       -r chroot
              instruct Boa where to chdir and chroot to.  The chdir/chroot is done before the configuration file
              is read, or any log files are opened.

FILES

       boa.conf - the sole configuration file for Boa.
              The directives in this file are defined in the DIRECTIVES section.

       mime.types - the
              MimeTypes <filename> defines what Content-Type Boa will send in an HTTP/1.0 or better transaction.

DIRECTIVES

       The Boa configuration file is parsed with a lex/yacc or flex/bison generated parser.  If  it  reports  an
       error, the line number will be provided; it should be easy to spot.  The syntax of each of these rules is
       very simple, and they can occur in any order.  Where possible, these directives mimic those of NCSA httpd
       1.3; We saw no reason to introduce gratuitous differences.

       Note:  the  "ServerRoot"  is  not  in  this  configuration file.  It can be compiled into the server (see
       defines.h ) or specified on the command line with the -c option.

       The following directives are contained in the boa.conf file, and most, but not all, are required.

       Port <integer>
              This is the port that Boa runs on.  The default port for http servers is 80.  If it is  less  than
              1024, the server must be started as root.

       User <user name or UID>
              The  name or UID the server should run as.  For Boa to attempt this, the server must be started as
              root.

       Group <group name or GID>
              The group name or GID the server should run as.  For Boa to  attempt  this,  the  server  must  be
              started as root.

       ServerAdmin <email address>
              The email address where server problems should be sent.  Note: this is not currently used.

       PidFile <filename>
              Where  to  put the pid of the process.  Comment out to write no pid file.  Note: Because Boa drops
              privileges at startup, and the pid file is written by the UID/GID before doing so,  Boa  does  not
              attempt removal of the pid file.

       ErrorLog <filename>
              The  location  of the error log file.  If this does not start with /, it is considered relative to
              the server root.  Set to /dev/null if you don't want errors logged.

       AccessLog <filename>
              The location of the access log file.  If this does not start with /, it is considered relative  to
              the server root.  Comment out or set to /dev/null (less effective) to disable access logging.

       VerboseCGILogs
              This is a logical switch and does not take any parameters.  Comment out to disable.

       CGILog <filename>
              The  location of the CGI error log file.  If this does not start with /, it is considered relative
              to the server root. If specified, this is the file that the stderr of CGIs is tied  to,  *instead*
              of to the ErrorLog.

       CGIumask <umask>
              The CGIumask is set immediately before execution of the CGI.  The default value is 027. The number
              must be interpretable unambiguously by the C function strtol. No base is specified, so one may use
              a hexadecimal, decimal, or octal number if it is prefixed accordingly.

       ServerName <server_name>
              The  name  of  this  server that should be sent back to clients if different than that returned by
              gethostname.

       VirtualHost
              This is a logical switch and does not  take  any  parameters.   Comment  out  to  disable.   Given
              DocumentRoot  /var/www,  requests  on  interface  'A' or IP 'IP-A' become /var/www/IP-A.  Example:
              http://localhost/ becomes /var/www/127.0.0.1

       VHostRoot <directory>
              The root location for all virtually  hosted  data  Comment  out  to  disable.   Incompatible  with
              'Virtualhost'  and 'DocumentRoot'!!  Given VHostRoot /var/www, requests to host foo.bar.com, where
              foo.bar.com is ip a.b.c.d, become /var/www/a.b.c.d/foo.bar.com Hostnames are "cleaned",  and  must
              conform to the rules specified in rfc1034, which are be summarized here:

              Hostnames  must  start  with a letter, end with a letter or digit, and have as interior characters
              only letters, digits, and hyphen.  Hostnames must not exceed 63 characters in length.

       DefaultVHost <hostname>
              Define this in order to have a default hostname when the client does not  specify  one,  if  using
              VirtualHostName.  If  not  specified, the word "default" will be used for compatibility with older
              clients.

       DocumentRoot <directory>
              The root directory of the HTML documents. If this does not start with /, it is considered relative
              to the server root.

       UserDir <directory>
              The name of the directory which is appended onto a user's home directory if  a  ~user  request  is
              received.

       DirectoryIndex <filename>
              Name  of the file to use as a pre-written HTML directory index.  Please  make and use these files.
              On the fly creation of directory indexes can be slow.

       DirectoryMaker <directory>
              Name of the program used to generate on-the-fly directory listings.  The program must take one  or
              two  command-line  arguments,  the  first being the directory to index (absolute), and the second,
              which is optional, contains what Boa would have the "title" of the document be.   Comment  out  if
              you  don't  want  on  the fly directory listings.  If this does not start with /, it is considered
              relative to the server root.

       KeepAliveMax <integer>
              Number of KeepAlive requests to allow per connection.   Comment  out,  or  set  to  0  to  disable
              keepalive processing.

       KeepAliveTimeout <integer>
              Number of seconds to wait before keepalive connections time out.

       MimeTypes <file>
              The  location of the mime.types file.  If this does not start with /, it is considered relative to
              the server root. Set to /dev/null if you do not want to load a mime types file. Do  *not*  comment
              out (better use AddType!)

       DefaultType <mime type>
              MIME type used if the file extension is unknown, or there is no file extension.

       AddType <mime type> <extension> [extension...]
              Associates a MIME type with an extension or extensions.

       Redirect, Alias, and ScriptAlias <path1> <path2>
              Redirect,  Alias,  and  ScriptAlias  all  have the same semantics -- they match the beginning of a
              request and take appropriate action.  Use Redirect for other servers, Alias for the  same  server,
              and ScriptAlias to enable directories for script execution.

              Redirect  allows  you  to  tell  clients  about  documents  which  used  to exist in your server's
              namespace, but do not anymore.  This allows you tell the clients where to look for  the  relocated
              document.

              Alias aliases one path to another.  Of course, symbolic links in the file system work fine too.

              ScriptAlias maps a virtual path to a directory for serving scripts.

       Please see the included boa.conf for defaults and examples.

HISTORY

       Like  the Linux kernel, even numbered versions are "stable", and odd numbered versions are "unstable", or
       rather,  "development".   Versions  0.91  and  0.91beta  of  Boa   were   released   by   Paul   Phillips
       <paulp@go2net.com>

       Version 0.92 was released by Larry Doolittle on December 12, 1996.

       Version 0.93 was the development version of 0.94.

       Version 0.94 was released 22 Jan 2000.

BUGS

       There are probably bugs, but we are not aware of any at this time.

AUTHOR

       Boa  was  created  by Paul Phillips <paulp@go2net.com>.  It is now being maintained and enhanced by Larry
       Doolittle <ldoolitt@boa.org> and Jon Nelson <jnelson@boa.org>.

       Linux is the development platform at the moment,  other  OS's  are  known  to  work.  If  you'd  like  to
       contribute to this effort, contact Larry or Jon via e-mail.

LICENSE

       This program is distributed under the GNU General Public License, as noted in each source file.

Version 0.94                                       Jan 22 2000                                            BOA(8)