/[hydra]/hydra/docs/hydra.texi
ViewVC logotype

Diff of /hydra/docs/hydra.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by nmav, Sun Oct 27 10:06:28 2002 UTC revision 1.3 by nmav, Sun Oct 27 10:10:18 2002 UTC
# Line 1  Line 1 
1  \input texinfo   @c -*-texinfo-*-  \input texinfo   @c -*-texinfo-*-
2  @c %**start of header  @c %**start of header
3  @setfilename boa.info  @setfilename hydra.info
4  @settitle The Boa HTTP Daemon  @settitle The Hydra HTTP Daemon
5  @set UPDATED Last Updated: 2 Jan 2001  @set UPDATED Last Updated: 2 Jan 2001
6  @set COPYPHRASE Copyright @copyright{} 1996-2001 Jon Nelson and Larry Doolittle  @set COPYPHRASE Copyright @copyright{} 1996-2001 Jon Nelson and Larry Doolittle
7  @set VERSION $Revision$  @set VERSION $Revision$
# Line 15  Line 15 
15    
16  @iftex  @iftex
17  @titlepage  @titlepage
18  @title The Boa HTTP Daemon  @title The Hydra HTTP Daemon
19  @c @sp 2  @c @sp 2
20  @end iftex  @end iftex
21    
22  @ifinfo  @ifinfo
23  This file documents Boa, an HTTP daemon for UN*X like machines.  This file documents Hydra, an HTTP daemon for UN*X like machines.
24  @end ifinfo  @end ifinfo
25    
26  @html  @html
27  <h1 align="center">The Boa HTTP Daemon</h1>  <h1 align="center">The Hydra HTTP Daemon</h1>
 <center><img src="boa_banner.png"></center>  
28  @end html  @end html
29    
30  @ifinfo  @ifinfo
31  @dircategory Networking  @dircategory Networking
32  @direntry  @direntry
33  * Boa: (boa).           The Boa Webserver  * Hydra: (hydra).           The Hydra Webserver
34  @end direntry  @end direntry
35  @end ifinfo  @end ifinfo
36    
37  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
38  @node Top, Introduction, , (dir)  @node Top, Introduction, , (dir)
39    
40  Welcome to the documentation for Boa, a high performance  Welcome to the documentation for Hydra, a high performance
41  HTTP Server for UN*X-alike computers, covered by the  HTTP Server for UN*X-alike computers, covered by the
42  @uref{Gnu_License,GNU General Public License}.  @uref{Gnu_License,GNU General Public License}. This is a draft
43    document based on Boa documentation.
44  The on-line, updated copy of this documentation lives at  The on-line, updated copy of this documentation lives at
45  @uref{http://www.boa.org/,http://www.boa.org/}  @uref{http://hydra.hellug.gr/,http://hydra.hellug.gr/}
46  @sp 1  @sp 1
47  @center @value{COPYPHRASE}  @center @value{COPYPHRASE}
48  @center @value{UPDATED}, @value{VERSION}  @center @value{UPDATED}, @value{VERSION}
# Line 62  The on-line, updated copy of this docume Line 62  The on-line, updated copy of this docume
62    
63  Installation  Installation
64    
65  * Files Used by Boa::  * Files Used by Hydra::
66  * Compile-Time and Command-Line Options::  * Compile-Time and Command-Line Options::
67  * boa.conf Directives::  * hydra.conf Directives::
68  * Security::  * Security::
69    
70  Limits and Design Philosophy  Limits and Design Philosophy
71    
72  * Limits::  * Limits::
73  * Differences between Boa and other web servers::  * Differences between Hydra and other web servers::
74  * Unexpected Behavior::  * Unexpected Behavior::
75    
76  Appendix  Appendix
# Line 89  Appendix Line 89  Appendix
89  @node    Introduction, Installation and Usage,top,top  @node    Introduction, Installation and Usage,top,top
90  @chapter Introduction  @chapter Introduction
91    
92  Boa is a single-tasking HTTP server.  That means that unlike  Hydra is a single-tasking HTTP server.  That means that unlike
93  traditional web servers, it does not fork for each incoming  traditional web servers, it does not fork for each incoming
94  connection, nor does it fork many copies of itself to handle multiple  connection, nor does it fork many copies of itself to handle multiple
95  connections.  It internally multiplexes all of the ongoing HTTP  connections.  It internally multiplexes all of the ongoing HTTP
96  connections, and forks only for CGI programs (which must be separate  connections, and forks only for CGI programs (which must be separate
97  processes), automatic directory generation, and automatic file  processes), automatic directory generation, and automatic file
98  gunzipping.  Preliminary tests show Boa is capable of  gunzipping.  Preliminary tests show Hydra is capable of
99  handling several thousand hits per second on a 300 MHz Pentium and  handling several thousand hits per second on a 300 MHz Pentium and
100  dozens of hits per second on a lowly 20 MHz 386/SX.  dozens of hits per second on a lowly 20 MHz 386/SX.
101    
102  The primary design goals of Boa are speed and security.  Security,  The primary design goals of Hydra are speed and security.  Security,
103  in the sense of @emph{can't be subverted by a malicious user,} not  in the sense of @emph{can't be subverted by a malicious user,} not
104  @emph{fine grained access control and encrypted communications}.  @emph{fine grained access control and encrypted communications}.
105  Boa is not intended as a feature-packed server; if you want one of those,  Hydra is not intended as a feature-packed server; if you want one of those,
106  check out  check out
107  WN (@uref{http://hopf.math.nwu.edu/}) from John Franks.  WN (@uref{http://hopf.math.nwu.edu/}) from John Franks.
108  Modifications to Boa that improve its speed, security, robustness, and  Modifications to Hydra that improve its speed, security, robustness, and
109  portability, are eagerly sought.  Other features may be added if they  portability, are eagerly sought.  Other features may be added if they
110  can be achieved without hurting the primary goals.  can be achieved without hurting the primary goals.
111    
112    Hydra is based on Boa web server.
113  Boa was created in 1991 by Paul Phillips (@email{psp@@well.com}).  Boa was created in 1991 by Paul Phillips (@email{psp@@well.com}).
114  It is now being maintained and enhanced by Larry Doolittle  It is now being maintained and enhanced by Larry Doolittle
115  (@email{ldoolitt@@boa.org}) and Jon Nelson  (@email{ldoolitt@@boa.org}) and Jon Nelson
116  (@email{jnelson@@boa.org}).  (@email{jnelson@@boa.org}).
117  Please see the acknowledgement section for further  Please see the acknowledgement section for further
118  details.  details. Hydra is maintained by
119    Nikos Mavroyanopoulos (@email{nmav@@gnutls.org}).
120    
121    
122  GNU/Linux is the development platform at the moment, other OS's are known to work.  GNU/Linux is the development platform at the moment, other OS's are known to work.
123  If you'd like to contribute to this effort, contact Larry or Jon via e-mail.  If you'd like to contribute to this effort, contact Larry or Jon via e-mail.
# Line 123  If you'd like to contribute to this effo Line 126  If you'd like to contribute to this effo
126  @node    Installation and Usage, Limits and Design Philosophy, Introduction,top  @node    Installation and Usage, Limits and Design Philosophy, Introduction,top
127  @chapter Installation and Usage  @chapter Installation and Usage
128    
129  Boa is currently being developed and tested on GNU/Linux/i386.  Hydra is currently being developed and tested on GNU/Linux/i386.
130  The code is straightforward (more so than most other servers),  The code is straightforward (more so than most other servers),
131  so it should run easily on most modern Unix-alike platforms.  Recent  so it should run easily on most modern Unix-alike platforms.  Recent
132  versions of Boa worked fine on FreeBSD, SunOS 4.1.4, GNU/Linux-SPARC,  versions of Hydra worked fine on FreeBSD, SunOS 4.1.4, GNU/Linux-SPARC,
133  and HP-UX 9.0.  Pre-1.2.0 GNU/Linux kernels may not work because of  and HP-UX 9.0.  Pre-1.2.0 GNU/Linux kernels may not work because of
134  deficient mmap() implementations.  deficient mmap() implementations.
135    
136  @menu  @menu
137  * Installation::  * Installation::
138  * Files Used by Boa::  * Files Used by Hydra::
139  * Compile-Time and Command-Line Options::  * Compile-Time and Command-Line Options::
140  * Security::  * Security::
141  @end menu  @end menu
142    
143  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
144  @node Installation,Files Used by Boa,,Installation and Usage  @node Installation,Files Used by Hydra,,Installation and Usage
145  @section Installation  @section Installation
146    
147  @enumerate  @enumerate
148   @item Unpack   @item Unpack
149   @enumerate   @enumerate
150    @item Choose, and cd into, a convenient directory for the package.    @item Choose, and cd into, a convenient directory for the package.
151    @item @kbd{tar -xvzf boa-0.94.tar.gz}, or for those of you with an archaic    @item @kbd{tar -xvzf hydra-x.y.z.tar.gz}, or for those of you with an archaic
152  (non-GNU) tar; @kbd{gzip -cd &lt; boa-0.94.tar.gz | tar -xvf -}  (non-GNU) tar; @kbd{gzip -cd &lt; hydra-x.y.z.tar.gz | tar -xvf -}
153    @item Read the documentation.  Really.    @item Read the documentation.  Really.
154   @end enumerate   @end enumerate
155   @item Build   @item Build
# Line 160  deficient mmap() implementations. Line 163  deficient mmap() implementations.
163    @end enumerate    @end enumerate
164    @item Configure    @item Configure
165    @enumerate    @enumerate
166     @item Choose a user and server port under which Boa can run.  The     @item Choose a user and server port under which Hydra can run.  The
167      traditional port is 80, and user @t{nobody} (create if      traditional port is 80, and user @t{nobody} (create if
168      you need to) is often a good selection for security purposes.      you need to) is often a good selection for security purposes.
169      If you don't have (or choose not to use) root privileges, you      If you don't have (or choose not to use) root privileges, you
170      can not use port numbers less than 1024, nor can you switch user id.      can not use port numbers less than 1024, nor can you switch user id.
171     @item Choose a server root.  The @t{conf} directory within the     @item Choose a server root.  The @t{conf} directory within the
172      server root must hold your copy of the configuration file      server root must hold your copy of the configuration file
173     @emph{boa.conf}     @emph{hydra.conf}
174     @item Choose locations for log files, CGI programs (if any), and     @item Choose locations for log files, CGI programs (if any), and
175      the base of your URL tree.      the base of your URL tree.
176     @item Set the location of the @t{mime.types} file.     @item Set the location of the @t{mime.types} file.
177     @item Edit @emph{conf/boa.conf} according to your     @item Edit @emph{conf/hydra.conf} according to your
178      choices above (this file documents itself).  Read through this file      choices above (this file documents itself).  Read through this file
179      to see what other features you can configure.      to see what other features you can configure.
180   @end enumerate   @end enumerate
181   @item Start   @item Start
182    @itemize    @itemize
183     @item Start Boa.  If you didn't build the right SERVER_ROOT into the     @item Start Hydra.  If you didn't build the right SERVER_ROOT into the
184      binary, you can specify it on the command line with the -c option      binary, you can specify it on the command line with the -c option
185      (command line takes precedence).      (command line takes precedence).
186      @example      @example
187      Example: ./boa -c /usr/local/boa      Example: ./hydra -c /usr/local/hydra
188      @end example      @end example
189    @end itemize    @end itemize
190        
# Line 200  deficient mmap() implementations. Line 203  deficient mmap() implementations.
203  @end enumerate  @end enumerate
204    
205  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
206  @node    Files Used by Boa, Compile-Time and Command-Line Options, Installation,Installation and Usage  @node    Files Used by Hydra, Compile-Time and Command-Line Options, Installation,Installation and Usage
207  @section Files Used by Boa  @section Files Used by Hydra
208    
209  @ftable @file  @ftable @file
210  @item boa.conf  @item hydra.conf
211    This file is the sole configuration file for Boa. The directives in this    This file is the sole configuration file for Hydra. The directives in this
212    file are defined in the DIRECTIVES section.    file are defined in the DIRECTIVES section.
213  @item mime.types  @item mime.types
214    The MimeTypes <filename> defines what Content-Type Boa will    The MimeTypes <filename> defines what Content-Type Hydra will
215    send in an HTTP/1.0 or better transaction.    send in an HTTP/1.0 or better transaction.
216    Set to /dev/null if you do not want to load a mime types file.    Set to /dev/null if you do not want to load a mime types file.
217    Do *not* comment out (better use AddType!)    Do *not* comment out (better use AddType!)
218  @end ftable  @end ftable
219    
220  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
221  @node    Compile-Time and Command-Line Options, boa.conf Directives, Files Used by Boa,Installation and Usage  @node    Compile-Time and Command-Line Options, hydra.conf Directives, Files Used by Hydra,Installation and Usage
222  @section Compile-Time and Command-Line Options  @section Compile-Time and Command-Line Options
223    
224  @table @var  @table @var
# Line 224  deficient mmap() implementations. Line 227  deficient mmap() implementations.
227   The default server root as #defined by @var{SERVER_ROOT} in   The default server root as #defined by @var{SERVER_ROOT} in
228   @file{defines.h} can be overridden on the commandline using the   @file{defines.h} can be overridden on the commandline using the
229   @option{-c} option.  The server root must hold your local copy of the   @option{-c} option.  The server root must hold your local copy of the
230   configuration file @file{boa.conf}.   configuration file @file{hydra.conf}.
231   @example   @example
232    Example: /usr/sbin/boa -c /etc/boa    Example: /usr/sbin/hydra -c /etc/hydra
233   @end example   @end example
234    
235  @end table  @end table
236    
237  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
238  @node    boa.conf Directives, Security, Compile-Time and Command-Line Options, (top)  @node    hydra.conf Directives, Security, Compile-Time and Command-Line Options, (top)
239  @section boa.conf Directives  @section hydra.conf Directives
240    
241  The Boa configuration file is parsed with a lex/yacc or flex/bison  The Hydra configuration file is parsed with a lex/yacc or flex/bison
242  generated parser. If it reports an error, the line number will be  generated parser. If it reports an error, the line number will be
243  provided; it should be easy to spot. The syntax of each of these rules  provided; it should be easy to spot. The syntax of each of these rules
244  is very simple, and they can occur in any order. Where possible, these  is very simple, and they can occur in any order. Where possible, these
# Line 246  Note: the "ServerRoot" is not in this co Line 249  Note: the "ServerRoot" is not in this co
249  compiled into the server (see @file{defines.h}) or specified on the command  compiled into the server (see @file{defines.h}) or specified on the command
250  line with the @command{-c} option.  line with the @command{-c} option.
251    
252  The following directives are contained in the @file{boa.conf} file, and most,  The following directives are contained in the @file{hydra.conf} file, and most,
253  but not all, are required.  but not all, are required.
254    
255  @table @option  @table @option
256   @item Port <Integer>   @item Port <Integer>
257    This is the port that Boa runs on. The default port for http servers is 80.    This is the port that Hydra runs on. The default port for http servers is 80.
258    If it is less than 1024, the server must be started as root.    If it is less than 1024, the server must be started as root.
259    
260   @item Listen <IP>   @item Listen <IP>
# Line 265  but not all, are required. Line 268  but not all, are required.
268    IP addresses, you have three choices:    IP addresses, you have three choices:
269        
270    @enumerate    @enumerate
271     @item Run boa without a "Listen" directive:     @item Run hydra without a "Listen" directive:
272      @itemize @bullet      @itemize @bullet
273      @item All addresses are treated the same; makes sense if the addresses      @item All addresses are treated the same; makes sense if the addresses
274       are localhost, ppp, and eth0.       are localhost, ppp, and eth0.
275      @item Use the VirtualHost directive below to point requests to different files.      @item Use the VirtualHost directive below to point requests to different files.
276       Should be good for a very large number of addresses (web hosting clients).       Should be good for a very large number of addresses (web hosting clients).
277     @end itemize     @end itemize
278      @item Run one copy of boa per IP address:      @item Run one copy of hydra per IP address:
279      @itemize @bullet      @itemize @bullet
280       @item Each instance has its own configuration with its own       @item Each instance has its own configuration with its own
281       "Listen" directive.  No big deal up to a few tens of addresses. Nice separation       "Listen" directive.  No big deal up to a few tens of addresses. Nice separation
# Line 281  but not all, are required. Line 284  but not all, are required.
284    @end enumerate    @end enumerate
285    
286   @item User <username or UID>   @item User <username or UID>
287   The name or UID the server should run as. For Boa to attempt this, the   The name or UID the server should run as. For Hydra to attempt this, the
288   server must be started as root.   server must be started as root.
289    
290   @item Group <groupname or GID>   @item Group <groupname or GID>
291   The group name or GID the server should run as. For Boa to attempt this,   The group name or GID the server should run as. For Hydra to attempt this,
292   the server must be started as root.   the server must be started as root.
293    
294   @item ServerAdmin <email address>   @item ServerAdmin <email address>
# Line 345  but not all, are required. Line 348  but not all, are required.
348    
349   @item DirectoryCache <directory>   @item DirectoryCache <directory>
350   DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker has been   DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker has been
351   commented out, the the on-the-fly indexing of Boa can be used  to generate indexes   commented out, the the on-the-fly indexing of Hydra can be used  to generate indexes
352   of directories. Be warned that the output is extremely minimal and can cause   of directories. Be warned that the output is extremely minimal and can cause
353   delays when slow disks are used.  Note: The DirectoryCache must be writable by the   delays when slow disks are used.  Note: The DirectoryCache must be writable by the
354   same user/group that Boa runs as.   same user/group that Hydra runs as.
355    
356   @item KeepAliveMax <integer>   @item KeepAliveMax <integer>
357   Number of KeepAlive requests to allow per connection. Comment out, or set   Number of KeepAlive requests to allow per connection. Comment out, or set
# Line 389  but not all, are required. Line 392  but not all, are required.
392    maps a virtual path to a directory for serving scripts.    maps a virtual path to a directory for serving scripts.
393    
394   @item Allow, Deny   @item Allow, Deny
395   Only supported if Boa is compiled with --enable-access-control.   Only supported if Hydra is compiled with --enable-access-control.
396   Allow and Deny allows pattern based access control using shell   Allow and Deny allows pattern based access control using shell
397   wildcards. The string the matching is performed on is the absolute   wildcards. The string the matching is performed on is the absolute
398   filesystem filename. The Allow, Deny directives are processed in   filesystem filename. The Allow, Deny directives are processed in
# Line 409  but not all, are required. Line 412  but not all, are required.
412  @end table  @end table
413    
414  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
415  @node    Security, , boa.conf Directives, Installation and Usage  @node    Security, , hydra.conf Directives, Installation and Usage
416  @section Security  @section Security
417    
418  Boa has been designed to use the existing file system security.   In  Hydra has been designed to use the existing file system security.   In
419  @file{boa.conf}, the directives @emph{user} and  @file{hydra.conf}, the directives @emph{user} and
420  @emph{group} determine who Boa will run as, if launched by root.  @emph{group} determine who Hydra will run as, if launched by root.
421  By default, the user/group is nobody/nogroup.  This allows quite a bit  By default, the user/group is nobody/nogroup.  This allows quite a bit
422  of flexibility.  For example, if you want to disallow access to otherwise  of flexibility.  For example, if you want to disallow access to otherwise
423  accessible directories or files, simply make them inaccessible to  accessible directories or files, simply make them inaccessible to
424  nobody/nogroup. If the user that Boa runs as is "boa" and the groups that  nobody/nogroup. If the user that Hydra runs as is "hydra" and the groups that
425  "boa" belongs to include "web-stuff" then files/directories accessible  "hydra" belongs to include "web-stuff" then files/directories accessible
426  by users with group "web-stuff" will also be accessible to Boa.  by users with group "web-stuff" will also be accessible to Hydra.
427    
428  The February 2000 hoo-rah from  The February 2000 hoo-rah from
429  @uref{http://www.cert.org/advisories/CA-2000-02.html,CERT advisory CA-2000-02}  @uref{http://www.cert.org/advisories/CA-2000-02.html,CERT advisory CA-2000-02}
430  has little to do with Boa.  As of version 0.94.4, Boa's escaping rules have  has little to do with Hydra.  As of version 0.94.4, Hydra's escaping rules have
431  been cleaned up a little, but they weren't that bad before.  The example CGI  been cleaned up a little, but they weren't that bad before.  The example CGI
432  programs have been updated to show what effort is needed there.  If you  programs have been updated to show what effort is needed there.  If you
433  write, maintain, or use CGI programs under Boa (or any other server) it's  write, maintain, or use CGI programs under Hydra (or any other server) it's
434  worth your while to read and understand this advisory.  The real problem,  worth your while to read and understand this advisory.  The real problem,
435  however, boils down to browser and web page designers emphasizing frills  however, boils down to browser and web page designers emphasizing frills
436  over content and security.  The market leading browsers assume (incorrectly)  over content and security.  The market leading browsers assume (incorrectly)
# Line 443  list -- there are probably others that h Line 446  list -- there are probably others that h
446    
447  @menu  @menu
448  * Limits::  * Limits::
449  * Differences between Boa and other web servers::  * Differences between Hydra and other web servers::
450  * Unexpected Behavior::  * Unexpected Behavior::
451  @end menu  @end menu
452    
453  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
454  @node    Limits,Differences between Boa and other web servers,,Limits and Design Philosophy  @node    Limits,Differences between Hydra and other web servers,,Limits and Design Philosophy
455  @section Limits  @section Limits
456    
457  @itemize @bullet  @itemize @bullet
# Line 458  list -- there are probably others that h Line 461  list -- there are probably others that h
461   network connection to the HTTP requests, or performance will suffer.   network connection to the HTTP requests, or performance will suffer.
462   For instance, if a document is served from a CD-ROM, the whole server   For instance, if a document is served from a CD-ROM, the whole server
463   (including all other currently incomplete data transfers) will stall   (including all other currently incomplete data transfers) will stall
464   while the CD-ROM spins up.  This is a consequence of the fact that Boa   while the CD-ROM spins up.  This is a consequence of the fact that Hydra
465   mmap()'s each file being served, and lets the kernel read and cache   mmap()'s each file being served, and lets the kernel read and cache
466   pages as best it knows how.  When the files come from a local disk   pages as best it knows how.  When the files come from a local disk
467   (the faster the better), this is no problem, and in fact delivers   (the faster the better), this is no problem, and in fact delivers
# Line 471  list -- there are probably others that h Line 474  list -- there are probably others that h
474   Writing a nonblocking gethostbyaddr is a difficult and not very   Writing a nonblocking gethostbyaddr is a difficult and not very
475   enjoyable task.  Paul Phillips experimented with several methods,   enjoyable task.  Paul Phillips experimented with several methods,
476   including a separate logging process, before removing hostname   including a separate logging process, before removing hostname
477   lookups entirely. There is a companion program with Boa   lookups entirely. There is a companion program with Hydra
478   @file{util/resolver.pl} that will postprocess the logfiles and   @file{util/resolver.pl} that will postprocess the logfiles and
479   replace IP addresses with hostnames, which is much faster no matter   replace IP addresses with hostnames, which is much faster no matter
480   what sort of server you run.   what sort of server you run.
# Line 479  list -- there are probably others that h Line 482  list -- there are probably others that h
482   @item Identd lookups   @item Identd lookups
483    
484   Same difficulties as hostname lookups; not included.   Same difficulties as hostname lookups; not included.
485   Boa provides a REMOTE_PORT environment variable, in addition   Hydra provides a REMOTE_PORT environment variable, in addition
486   to REMOTE_ADDR, so that a CGI program can do its own ident.   to REMOTE_ADDR, so that a CGI program can do its own ident.
487   See the end of @t{examples/cgi-test.cgi}.   See the end of @t{examples/cgi-test.cgi}.
488    
# Line 487  list -- there are probably others that h Line 490  list -- there are probably others that h
490    
491   If users are allowed to serve HTML from their home directories,   If users are allowed to serve HTML from their home directories,
492   password file lookups can potentially block the process.  To lessen   password file lookups can potentially block the process.  To lessen
493   the impact, each user's home directory is cached by Boa so it need   the impact, each user's home directory is cached by Hydra so it need
494   only be looked up once.   only be looked up once.
495    
496   @item Running out of file descriptors   @item Running out of file descriptors
# Line 504  list -- there are probably others that h Line 507  list -- there are probably others that h
507  @end itemize  @end itemize
508    
509  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
510  @node    Differences between Boa and other web servers,Unexpected Behavior,Limits,Limits and Design Philosophy  @node    Differences between Hydra and other web servers,Unexpected Behavior,Limits,Limits and Design Philosophy
511  @section Differences between Boa and other web servers  @section Differences between Hydra and other web servers
512    
513  In the pursuit of speed and simplicity, some aspects of Boa differ  In the pursuit of speed and simplicity, some aspects of Hydra differ
514  from the popular web servers.  In no particular order:  from the popular web servers.  In no particular order:
515    
516  @itemize @bullet  @itemize @bullet
# Line 518  from the popular web servers.  In no par Line 521  from the popular web servers.  In no par
521    IP address is provided in the @var{REMOTE_HOST} variable, so (if the CGI    IP address is provided in the @var{REMOTE_HOST} variable, so (if the CGI
522    program actually cares) gethostbyaddr or a variant can be used.    program actually cares) gethostbyaddr or a variant can be used.
523        
524   @item There are no server side includes (@acronym{SSI}) in Boa   @item There are no server side includes (@acronym{SSI}) in Hydra
525    
526    We don't like them, and they are too slow to parse.  We will consider    We don't like them, and they are too slow to parse.  We will consider
527    more efficient alternatives.    more efficient alternatives.
528        
529   @item There are no access control features   @item There are no access control features
530    
531    Boa will follow symbolic links, and serve any file that it can    Hydra will follow symbolic links, and serve any file that it can
532    read.  The expectation is that you will configure Boa to run as user    read.  The expectation is that you will configure Hydra to run as user
533    "nobody", and only files configured world readable will come    "nobody", and only files configured world readable will come
534    out.    out.
535        
# Line 537  from the popular web servers.  In no par Line 540  from the popular web servers.  In no par
540  @end itemize  @end itemize
541    
542  @comment node-name,     next,           previous, up  @comment node-name,     next,           previous, up
543  @node    Unexpected Behavior,,Differences between Boa and other web servers,Limits and Design Philosophy  @node    Unexpected Behavior,,Differences between Hydra and other web servers,Limits and Design Philosophy
544  @section Unexpected Behavior  @section Unexpected Behavior
545    
546  @itemize @bullet  @itemize @bullet
547   @item SIGHUP handling   @item SIGHUP handling
548    
549   Like any good server, Boa traps SIGHUP and rereads @file{boa.conf}.   Like any good server, Hydra traps SIGHUP and rereads @file{hydra.conf}.
550   However, under normal circumstances, it has already given away   However, under normal circumstances, it has already given away
551   permissions, so many items listed in @file{boa.conf} can not take effect.   permissions, so many items listed in @file{hydra.conf} can not take effect.
552   No attempt is made to change uid, gid, log files, or server port.   No attempt is made to change uid, gid, log files, or server port.
553   All other configuration changes should take place smoothly.   All other configuration changes should take place smoothly.
554    
555   @item SIGUSR1 handling   @item SIGUSR1 handling
556    
557   Boa traps SIGUSR1 and prints useful statistics in the error log file.   Hydra traps SIGUSR1 and prints useful statistics in the error log file.
558    
559   @item Relative URL handling   @item Relative URL handling
560    
561   Not all browsers handle relative URLs correctly.  Boa will not   Not all browsers handle relative URLs correctly.  Hydra will not
562   cover up for this browser bug, and will typically report 404 Not Found   cover up for this browser bug, and will typically report 404 Not Found
563   for URL's containing odd combinations of "../" 's.   for URL's containing odd combinations of "../" 's.
564    
# Line 588  as noted in each source file: Line 591  as noted in each source file:
591    
592  @smallexample  @smallexample
593  /*  /*
594   *  Boa, an http server   *  Hydra, an http server
595   *  Copyright (C) 1995 Paul Phillips <psp@@well.com>   *  Copyright (C) 1995 Paul Phillips <psp@@well.com>
596   *   *
597   *  This program is free software; you can redistribute it and/or modify   *  This program is free software; you can redistribute it and/or modify
# Line 613  as noted in each source file: Line 616  as noted in each source file:
616  @node    Acknowledgments,Reference Documents,License,Appendix  @node    Acknowledgments,Reference Documents,License,Appendix
617  @section Acknowledgments  @section Acknowledgments
618    
619  Paul Phillips wrote the first versions of Boa, up to and including  Paul Phillips wrote the first versions of Hydra, up to and including
620  version 0.91.  Version 0.92 of Boa was officially released December 1996  version 0.91.  Version 0.92 of Hydra was officially released December 1996
621  by Larry Doolittle.  Version 0.93 was the development version of 0.94,  by Larry Doolittle.  Version 0.93 was the development version of 0.94,
622  which was released in February 2000.  which was released in February 2000.
623    
# Line 628  for hosting the @uref{http://www.boa.org Line 631  for hosting the @uref{http://www.boa.org
631  We would also like to thank Paul Philips for writing code that is  We would also like to thank Paul Philips for writing code that is
632  worth maintaining and supporting.  worth maintaining and supporting.
633    
634  Many people have contributed to Boa, including (but not  Many people have contributed to Hydra, including (but not
635  limited to) Charles F. Randall (@email{randall@@goldsys.com})  limited to) Charles F. Randall (@email{randall@@goldsys.com})
636  Christoph Lameter (@email{<chris@@waterf.org>}),  Christoph Lameter (@email{<chris@@waterf.org>}),
637  Russ Nelson (@email{<nelson@@crynwr.com>}), Alain Magloire  Russ Nelson (@email{<nelson@@crynwr.com>}), Alain Magloire
# Line 649  writing what I believe is the best webse Line 652  writing what I believe is the best webse
652  @section Reference Documents  @section Reference Documents
653    
654  Links to documents relevant to  Links to documents relevant to
655  @uref{http://www.boa.org/,Boa}  @uref{http://hydra.hellug.gr/,Hydra}
656  development and usage.  Incomplete, we're still working on this.  development and usage.  Incomplete, we're still working on this.
657  NCSA has a decent  NCSA has a decent
658  @uref{http://hoohoo.ncsa.uiuc.edu/docs/Library.html,page} along  @uref{http://hoohoo.ncsa.uiuc.edu/docs/Library.html,page} along
# Line 688  Also see Yahoo's List Line 691  Also see Yahoo's List
691  For unix-alike platforms, with published source code.  For unix-alike platforms, with published source code.
692    
693  @itemize  @itemize
694   @item tiny/turbo/throttling httpd very similar to Boa, with a throttling   @item tiny/turbo/throttling httpd very similar to Hydra, with a throttling
695   feature   feature
696   @* @uref{http://www.acme.com/software/thttpd/}   @* @uref{http://www.acme.com/software/thttpd/}
697    
# Line 720  For unix-alike platforms, with published Line 723  For unix-alike platforms, with published
723    
724  Also worth mentioning is Zeus.  Also worth mentioning is Zeus.
725  It is commercial, with a free demo, so it doesn't belong on the list above.  It is commercial, with a free demo, so it doesn't belong on the list above.
726  Zeus seems to be based on technology similar to Boa and thttpd,  Zeus seems to be based on technology similar to Hydra and thttpd,
727  but with more bells and whistles.  but with more bells and whistles.
728  @* @uref{http://www.zeus.co.uk/products/server/}  @* @uref{http://www.zeus.co.uk/products/server/}
729    
# Line 762  but with more bells and whistles. Line 765  but with more bells and whistles.
765  @item cgiwrap  @item cgiwrap
766  @* @uref{http://www.umr.edu/@~cgiwrap/}  @* @uref{http://www.umr.edu/@~cgiwrap/}
767    
768  @item suEXEC (Boa would need to be ..umm.. "adjusted" to support this)  @item suEXEC (Hydra would need to be ..umm.. "adjusted" to support this)
769  @* @uref{http://www.apache.org/docs/suexec.html}  @* @uref{http://www.apache.org/docs/suexec.html}
770  @end itemize  @end itemize
771    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26