HTTPd Configuration

WASD Hypertext Services - Technical Overview

[next] [previous][contents]

5 - HTTPd Configuration

WASD's HTTPd configuration was originally a subset based on the CERN HTTPd. It has now evolved considerably. By default, the system-table logical name HTTPD$CONFIG locates a common configuration file, unless an individual configuration file is specified using a job-table logical name. Simple editing of this file changes the configuration. Comment lines may be included by prefixing them with the hash ``#'' character. Configuration file directives are not case-sensitive. Any changes to the configuration file can only be enabled by restarting the HTTPd process using the following command on the server system:

  $ HTTPD /DO=RESTART

The reader is also refered to the CERN HTTPd documentation for background information on HTTP daemon configuration. Also see 6 - HTTPd Mapping Rules for mapping rule configuration.

5.1 - Current Server Configuration

A server's currently loaded configuration can be interrogated. See 8 - HTTPd Server Administration for further information.

5.2 - Current Directives

NOTE: The format of the configuration file has been changed between version 3 and version 4. This was to support on-line server configuration and administration (see 8 - HTTPd Server Administration). The version 3 format will still be read by the HTTPd but the first time the configuration is updated on-line it is saved in the version 4 format, described below.

The example configuration file for the WASD HTTPd server can be viewed.

Some directives take a single parameter, such as an integer, string or boolean value. Other directives can/must have multiple parameters. The version 4 configuration requires the directive to be placed on a line by itself and each separate parameter on a separate line following it. All parameter lines apply to the most recently encountered directive.

Note that all boolean directives are disabled (OFF) by default. This is done so that there can be no confusion about what is enabled and disabled by default. To use directive controlled facility it must be explicitly enabled.

  1. [Accept] host/domain name (default: all)

    One or more (comma-separated if on the same line) internet host/domain names, with ``*'' wildcarding for host/subdomain matching, to be explicitly allowed access. Also see the Reject directive. Reject directives have precedence over Accept directives. The Accept directive may be used multiple times. Also see DNSLookup directive.

    Examples:

      [Accept]
      *.remote.dsto.gov.au
      *.wasd.dsto.gov.au
    
  2. [AddType] .suffix representation encoding script-name description (no default)

    Binds a file suffix (extension, type) to a mime content type. The script name is used to auto-script (see 14.6 - Auto-Scripting) a specified file type. The description is used as documentation for directory listings.

    Examples:

      [AddType]
      .html  text/html   -       HyperText Markup Language
      .txt   text/plain  -       plain text
      .gif   image/gif   -       image (GIF)
      .hlb   text/x-script /Conan  VMS Help library
      .decw$book   text/x-script   /HyperReader    Bookreader book
    

    (Versions prior to 3.2 used this configuration directive for the MIME content-type to determine whether a file was transfered record-by-record or in binary. This is no longer required and should be removed from existing configuration files.)

  3. [AddIcon] icon-URL ALT-text template (no default)

    Specifies a directory listing icon and alternative text for the mime content type specified in the template.

    Examples:

      [AddIcon]
      /icon/-/doc.gif    [HTM]  text/html
      /icon/-/text.gif   [TXT]  text/plain
      /icon/-/image.gif  [IMG]  image/gif
    
  4. [AddBlankIcon] icon-URL
    [AddDirIcon] icon-URL ALT-text
    [AddParentIcon] icon-URL ALT-text
    [AddUnknownIcon] icon-URL ALT-text (no defaults)

    Specifies a directory listing icon for these non-content-type parts of the listing.

    Examples:
      [AddBlankIcon]    /icon/-/blank.gif
      [AddDirIcon]      /icon/-/dir.gif      [DIR]
      [AddParentIcon]   /icon/-/back.gif     [n-content-type parts of the 
      [AddUnknownIcon]  /icon/-/unknown.gif  [???] 
    

  5. [AuthBasic] ENABLED|DISABLED (default: DISABLED)

    Enables or disables BASIC user name authentication. See 7 - HTTPd Authentication and Authorization.

  6. [AuthDigest] ENABLED|DISABLED (default: DISABLED)

    Enables or disables Digest user name authentication. See 7 - HTTPd Authentication and Authorization.

  7. [AuthDigestGetLife] integer (default: 0)

    The number of seconds a digest nonce for a GET request (read) can be used before becoming stale.

  8. [AuthDigestPutLife] integer (default: 0)

    The number of seconds a digest nonce for a PUT (/POST/DELETE ... write) request can be used before becoming stale.

  9. [AuthVMS] ENABLED|DISABLED (default: DISABLED)

    Enables or disables password checking from the host's SYSUAF. See 7 - HTTPd Authentication and Authorization.

  10. [Busy] integer (default: 10)

    The maximum number of concurrent client connections before a ``server too busy right now ... try again shortly'' error is returned to the client.

  11. [CommentedInfo] ENABLED|DISABLED (default: DISABLED)

    Includes, commented at the beginning of any HTML document, the software ID of the server and any relevant VMS file specification for the document.

  12. [DclHardLimit] integer (default: 0)

    The maximum number of DCL/CGI script processing subprocesses that may ever exist concurrently (works in conjunction with [DclSoftLimit].

  13. [DclSoftLimit] integer (default: 0)

    The number of DCL/CGI script processing subprocesses after which idle subprocesses are deleted to make room for new ones. The [DclHardLimit] should be approximately 25% more than the [DclSoftLimit]. The margin exists to allow for occasional slow run-down of deleted/finishing subprocesses. If these limits are not set (i.e. zero) they are calculated with [Busy] using ``[DclSoftLimit] = [Busy]'' and ``[DclHardLimit] = [DclSoftLimit] + [DclSoftLimit] / 4''.

  14. [DclSpawnAuthPriv] ENABLED|DISABLED (default: DISABLED)

    By default, when a DCL/scripting subprocess is spawned it inherits the server's currently enabled privileges, which are none, not even TMPMBX or NETMBX. If this parameter is enabled the subprocess is created with the server account's SYSUAF-authorized privileges (which should never be other than NETMBX and TMPMBX). Use with caution.

  15. [DclCgiPlusLifeTime] integer (default: 0)

    This value represents time in minutes. If this value is zero CGIplus subprocess may persist indefinitely (excluding explicit and proactive server purging). If non-zero the CGIplus subprocess is terminated the specified number of minutes after it last processed a request. This helps prevent sporadically used scripts from clogging up a system.

  16. [DclZombieLifeTime] integer (default: 0)

    This value represents time in minutes. If this value is zero the use of persistant DCL subprocesses is disabled. If non-zero the zombie subprocess is terminated the specified number of minutes after it last processed a request. This helps prevent zombie processes from clogging up a system. See 9 - HTTPd Scripting.

  17. [DirAccess] ON|OFF| SELECTIVE (default: DISABLED)

    Controls directory listings. SELECTIVE allows access only to those directories containing a file .WWW_BROWSABLE. The WASD HTTPd directory access facility always ignores directories containing a file named .WWW_HIDDEN. Also see the DirWildcard directive.

  18. [DirLayout] string (default: I__L__R__S__D)

    Allows specification of the directory listing layout. This is a short string that specifies the included fields, relative placement and optionally the width of the fields in a directory listing. Each field is controlled by a single letter and optional leading decimal number specifying its width. If a width is not specified an appropriate default applies. An underscore is used to indicate a single space and is used to separate the fields (two consecutive works well).

    As illustrated in the following examples:

      [DirLayout]       I__15L__S__D
      [DirLayout]       15L__9R__S
      [DirLayout]       15N_9C_9R_S
    
  19. [DirOwner] ON|OFF (default: DISABLED)

    Allows specification and display of the RMS file owner information.

  20. [DirPreExpired] ENABLED|DISABLED (default: DISABLED)

    Directory listings and trees may be pre-expired. That is, the listing is reloaded each time the page is referenced. This is convenient in some environments where directory contents change frequently, but adds considerable over-head and so is disabled by default. Individual directory listings may have the default behaviour over-ridden using syntax similar to the following examples:

      /dir1/dir2/*.*?httpd=index?expired=yes
      /dir1/dir2/*.*?httpd=index?expired=no
      /tree/dir1/dir2/?httpd=index?expired=yes
      /tree/dir1/dir2/?httpd=index?expired=no
    

  21. [DirReadme] TOP|BOTTOM | OFF (default: DISABLED)

    If any of the files provided using the DirReadMeFile directive are located in the directory the contents are included at the top or bottom of the listing (or not at all). Plain-text are included as plain-text, HTML are included as HTML allowing markup tags to be employed.

  22. [DirReadMeFile] file.suffix (no default)

    Specifies the names and order in which a directory is checked for read-me files. This can be enabled or disabled using the DirReadme directive. Plain-text are included as plain-text, HTML are included as HTML allowing markup tags to be employed.

    Examples:

      [DirReadMeFile]
      readme.html
      readme.htm
      readme.
      readme.txt
      readme.1st
    

  23. [DirWildcard] OFF|ON (default: DISABLED)

    This enables the facility to force the server to provide a directory listing by providing a wildcard file specification, even if there is a home (welcome) document in the directory. This should not be confused with the DirAccess directive which controls directory listing itself.

  24. [DNSLookup] ENABLED|DISABLED (default: DISABLED)

    Enables or disables connection request host name resolution. This functionality may be expensive (in terms of processing overhead) and make serving granularity coarser if DNS is involved. If not enabled and logging is, the entry is logged against the numeric internet address. If not enabled any accept or reject directive must be expressed as numeric addresses.

  25. [ErrorRecommend] ENABLED|DISABLED (default: DISABLED)

    Provides a short message recommending action when reporting an error to a client. For example, if a document cannot be found it may say:

      (document, or bookmark, requires revision)
    

  26. [ErrorSysAdmin] mailto:email-address-string (or actually any URL, it's just wrapped into an HTML anchor) (default: empty)

    If an error is detected within the HTTPd, or some other abnormal status is detected and reported to the client the message will include an e-mail link allowing the client to easily report the problem. Example entry:

      [ErrorSysAdmin]  Mark.Daniel@dsto.defence.gov.au
    

  27. [ErrorInfo] string / lines of text (default: empty)

    One or more lines of text that are included with a client error report. Can/should include HTML markup.

      [ErrorInfo]
      <P><TABLE WIDTH=400 CELLPADDING=2 BORDER><TR><TD>
      <CENTER><B>High Frequency Radar Division</B></CENTER>
      For additional information, note the status code on the
      title of this report and select an appropriate link below:
      <CENTER><TABLE NOBORDER><TR>
      <TD><A HREF="/httpd/-/status1xx.html">1<I>xx</I></A></TD><TD>&nbsp;</TD>
      <TD><A HREF="/httpd/-/status2xx.html">2<I>xx</I></A></TD><TD>&nbsp;</TD>
      <TD><A HREF="/httpd/-/status3xx.html">3<I>xx</I></A></TD><TD>&nbsp;</TD>
      <TD><A HREF="/httpd/-/status4xx.html">4<I>xx</I></A></TD><TD>&nbsp;</TD>
      <TD><A HREF="/httpd/-/status5xx.html">5<I>xx</I></A></TD><TD>&nbsp;</TD>
      <TD>&nbsp;</TD><TD>&nbsp;</TD>
      <TD><A HREF="/httpd/-/statushelp.html">Help</A></TD>
      </TR></TABLE></CENTER>
      </TD></TR></TABLE>
    

  28. [InputTimeout] integer (default: 2)

    Number of minutes to allow a connection request to be in progress without submitting a complete request header before terminating it.

  29. [Logging] ENABLED|DISABLED (default: DISABLED)

    Enables or disables the activity log. Logging can slow down request processing and adds overhead.

  30. [Monitor] ENABLED|DISABLED (default: DISABLED)

    Allows monitoring via the HTTPDMON utility. Adds slight request processing overhead.

  31. [OutputTimeout] integer (default: 10)

    Number of minutes to allow a request to be output before terminating it.

  32. [Port] integer (default: 80)

    IP port number for server to bind to.

  33. [PutMaxKBytes] integer (default: 250)

    Maximum size of an HTTP POST or PUT method request in Kilobytes.

  34. [PutVersionLimit] integer (default: 3)

    File created using the POST or PUT methods have the specified version limit applied.

  35. [Reject] host/domain name (default: none)

    One or more (comma-separated if on the same line) internet host/domain names, with ``*'' wildcarding for host/subdomain matching, to be explicitly denied access. Also see the Accept directive. Reject directives have precedence of Accept directives. The Reject directive may be used multiple times. Also see DNSLookup directive.

    Example:

      [Reject]
      *.remote.dsto.gov.au
      *.wasd.dsto.gov.au
    

  36. [RequestHistory] integer (default: 0)

    The server can keep a list of the most recent requests accessable from the server administration menu. This value determines the number kept. Zero disables the facility. Each retained request consumes 256 bytes and adds a small amount of extra processing overhead.

  37. [Search] path (no default)

    Specifies the physical path to the default query-string keyword search script.

    Examples:

      Search /ht_root/script/query
    
  38. [SSI] ENABLED|DISABLED (default: DISABLED)

    Enables or disables Server Side Includes (HTML pre-processing).

  39. [SSIaccesses] ENABLED|DISABLED (default: DISABLED)

    Enables or disables Server Side Includes (HTML pre-processing) file access counter.

  40. [SSIexec] ENABLED|DISABLED (default: DISABLED)

    Enables or disables Server Side Includes (HTML pre-processing) DCL execution functionality.

  41. [StreamLF] integer (default: 0 (disabled))

    Enables or disables automatic conversion of VARIABLE record format documents (files) to STREAM-LF, which are much more efficient with this server. The integer is the maximum size of a file in Kilobytes that the server will attempt to convert. Zero disables the conversion.

  42. [Welcome] file.suffix (no default)

    Specifies the names and order in which a directory is checked for home page files. If no home page is found a directory listing is generated.

    Examples:

      [Welcome]
      home.html
      home.htm
      home.menu
      home.mnu
    


[next] [previous][contents]