The CERN server was originally developed at the European Laboratory for Particle Physics, formerly known as Counseil European pour la Recherche Nucleaire (CERN), and incidentally the birthplace of the Web. It is now maintained by the World Wide Web Consortium (W3C).
Unlike the NCSA and Apache servers, the CERN server uses a single configuration file, which contains all of the information the server needs to run. There are several example configuration files included with the software, which correspond to different modes of running the server. These are:
In addition to the directives themselves, the server configuration file may contain any number of blank lines or comment lines beginning with "#". Directive names are not case-sensitive, but the case conventions used in the example files will be used here.
This section lists all of the directives available for use in a regular HTTP server setup. For easier reference, the directives are grouped into categories based on their basic functionality. Access control configuration and related directives are discussed in the last section.
Setting up the server for proxy and caching service and related directives are not discussed here. Information on these setups and the server software itself can be found at http://www.w3.org.
The directives listed in this section are used to set general server parameters.
The Disable directive tells the server to disallow certain HTTP request methods. By default, DELETE, PUT, CHECKIN, CHECKOUT, SHOWMETHOD, LINK, and UNLINK are all disabled.
The DNSLookup directive controls whether the server will attempt reverse DNS lookup of the client host during requests. The default is On.
The Enable directive tells the server to allow certain HTTP request methods. By default, GET, HEAD, and POST are all enabled.
ErrorUrl error_code filename
The document to return when the specified error is returned.
Specifies the group you want the server process to run as.
Allows you to specify the preferred name for your server machine.
Specifies whether the server should attempt to learn the identity of the user for each request. By default identity checking is off.
Specifies how long the server will wait for a request from the client after the connection has been opened. You may use any combination of hours (hours), minutes (mins), and seconds (secs). The default setting is:
InputTimeOut 2 mins
Specifies how long the server will wait for the client to accept the response. The default setting is:
OutputTimeOut 20 mins
Sets the group ID of the parent process right after binding to the port.
Sets the user ID of the parent process right after binding to the port.
Specifies the location of the file into which the server should place its process id when running in standalone mode, either as an absolute path or as a relative path from the ServerRoot. This directive is needed if you plan to restart the server using the -restart command-line option. The default setting is:
Specifies your server's port. The default port for standalone web servers is 80. For example, to set the port to 5234, use the following setting:
Specifying a port automatically sets the server to run in standalone mode, unless you have explicitly told it otherwise. If you want the server to run under inetd, you should set the ServerType directive to inetd, or not include a Port directive.
Specifies how long the server will wait for a script to produce output to be sent to a client. The value is specified using any combination of hours (hours), minutes (mins), and seconds (secs). The default setting is:
ScriptTimeOut 5 mins
Specifies the directory in which all the server's associated files reside. This path is used as the root directory when relative paths are specified with other directives. For example:
Specifies whether your server is to run in standalone mode or under inetd. The default value depends on whether the Port directive is used. If a port is specified, the default is standalone; if not, the default is inetd.
Specifies the user you want the server process to run as.