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.