HPlogo Configuring and Managing MPE/iX Internet Services > Chapter 9 Apache for MPE/iX

Feature Set

MPE documents

Complete PDF
Table of Contents
Index

E0802 Edition 6
E0701 Edition 5 ♥
E0400 Edition 4

Apache for MPE/iX supports a rich feature set. The entire feature set is determined by both the modules that are compiled into the Apache program and by the extension modules (Dynamic Shared Objects) that are loaded at Apache runtime.

In addition to the http core (http_core.c) which is the heart of the Apache code, there are a number of other compiled-in modules. These modules provide the following major features:
HTTP/1.1, the latest HTTP protocol

Capabilities new to HTTP/1.1 include content negotiation (the server returns the data type and human language most preferred by the browser), persistent connections (the server uses the same socket for more than one request from the same client), and HOSTNAME variable in the request (for implementing virtual hosts on the server).

Advanced Logging

Apache supports multiple log files, customized log files, and logging on events such as error status.

Access Control

Basic access control to resources, such as a directory, is provided through usernames and passwords (Basic Authentication). Access can also be limited by IP address, domain, or even by HTTP method (i.e., POST or GET).

Common Gateway Interface applications (CGI)

CGI is a mechanism for executing external applications from the browser. These CGI applications can be written in any script or programming language which runs on MPE/iX. CGI provides dynamic output to the user. That is, the result returned to the client may be different each time the CGI is run.

Server Side Includes (SSI)

SSI also provides dynamic output to a client. SSI is a set of commands that are embedded in an HTML page and are parsed and executed when the page is accessed. SSI commands include flow control statements, variable declarations, and execution of programs.

Cookies

Cookies are pieces of information generated by the web server and sent back to the browser for storage. For each subsequent request from the same client, the cookie is returned to the server. Cookies are useful for tracking which clients are accessing a server.

Server-side Imagemaps

Server-side imagemaps are zones defined in an image that, when clicked, will send the client to a different URL. This functionality has largely been replaced by the newer client-side imagemaps. Client-side imagemaps are implemented by a browser and are more efficient since there is no need to return to the server for a redirect to the intended target page.

URL Alias and Redirection

One part of the server's file system is mapped to another part when URL aliasing or redirection is used. This is useful for accessing documents outside of the document tree.

Directory Indexing

For URLs ending in a "/" (a directory request), Apache will return either an index file or a directory listing. The behavior is determined by what is configured in the httpd.conf file.

Fix Typos in URLS

Apache will correct single character misspellings in a URL and will return the file it thinks you want.

As-is Files

Apache has the ability to send documents to a client without HTTP headers. This is useful for document writers who what to write their own headers.

Proxy Server

Apache can act as a proxy server, or intermediary, when clients make web server requests. Instead of a client making a direct request to the web server, the client makes a request to the proxy server. The proxy server then makes the actual request to the web server or can simply return a cached document without actually contacting the web server.

Rewrite

URLs can be translated on-the-fly to new addresses. A complex set of translation rules allows server variables, environment variables, HTTP headers, time stamps, and other values to be used in these address translations.

Virtual Hosts (Vhost)

A single copy of the Apache web server can be made to look like multiple web servers by using virtual hosts. Each alias IP address and alias name that resolves to your web server's actual IP address can be configured as its own virtual host with its own directives (such as its own document root). It is usually easier to register additional server names (for name-based virtual hosts) than to acquire additional IP addresses (for IP-based virtual hosts) and name-based virtual hosts are the preferred method. With Apache, large numbers of virtual hosts can be added and/or configured without restarting Apache.

Digest Authentication

Digest Authentication is a new authentication scheme under consideration for web browsers. Web browsers currently implement Basic Authentication.

Dynamic Shared Objects (DSOs)

DSOs are pieces of program code in a special format for loading at runtime into the address space of the Apache program. With DSOs, Apache functionality can easily be extended with third-party modules without recompiling the Apache binary.

For a complete list of Apache compiled-in (static) modules, run the program file with the -l option:

  shell/iX> /APACHE/PUB/HTTPD -lCompiled-in modules:http_core.c
  mod_vhost_alias.c
  mod_env.c
  mod_log_config.c
  mod_log_agent.c
  mod_log_referer.c
  mod_mime_magic.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_info.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_speling.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_access.c
  mod_auth.c
  mod_auth_anon.c
  mod_digest.c
  mod_proxy.c
  mod_cern_meta.c
  mod_expires.c
  mod_headers.c
  mod_usertrack.c
  mod_unique_id.c
  mod_so.c
  mod_setenvif.c

Version Identification


To view the Apache version, run the program file with the -v option. Each Apache release has an open source version number (for example, Apache 1.3.14) and an MPE/iX version number (i.e., A.02.00).

  shell/iX> ./HTTPD -v
  Server version: Apache/1.3.14 (HP MPE/iX A.02.00)
  Server built:   Apr 2 2001 11:58:16

System Requirements for Installation


The following are estimates for hardware resources required for an Apache installation.
  • 32 MB of memory (64 MB recommended for machines with high traffic).

  • 25 MB Disk Space (Apache directories, Apache files and log files) used approximately in the following way:

    • 5 MB for Apache and its assorted static files.

    • 10 MB for the access log (about 100,000 requests).

    • 10 MB for the error log (about 100,000 errors).

  • Additional disk space for your documents.

If using less than the estimated disk space required for the log files, HP recommends monitoring their size. Each request or error message is about 100 bytes and both logs, but especially the access log, can grow quite large. Each request to the web server creates one entry in the access log.

To periodically purge or archive the log files, refer to the section on "Managing Log Files".

Product Installation


Earlier versions of Apache for MPE/iX were installed under PUB.APACHE. Starting with Apache 1.3.14, each Apache version is installed in its own directory tree under the APACHE account and in a group named by its MPE/iX version. For example, Apache 1.3.14 has an MPE/iX version number of A.02.00 (VUUFF) so it resides in /APACHE/A0200 (/APACHE/VUUFF). The next release of Apache will reside in /APACHE/A0300 and so on. A version-specific group is created for each new release of Apache for MPE/iX and all the files for that release are installed under that group.

The APACHE account and PUB group is still used and file access is still through the /APACHE/PUB directory. Symbolic links point from files and directories in PUB.APACHE to their corresponding files and directories in the version-specific group.

The installation also creates a symlink named CURRENT that points to the active version-specific group, since the system may contain multiple version-specific groups, for example (/APACHE/A0200, APACHE/A0300, etc.). To view which version of Apache is the current version:

  shell/iX> ll /APACHE/CURRENT
  lrwxrwxrwx   1 MGR.APACHE     APACHE    5 Mar 27 20:03
    CURRENT -> A0200

The symlinks in PUB.APACHE point indirectly via the CURRENT symlink into the version-specific group. For instance, the bin directory will point to the bin directory of the CURRENT version, so that a reference to /APACHE/PUB/bin/htpassword accesses /APACHE/A0200/bin/htpasswd.

  shell/iX> ll /APACHE/PUB/bin
  lrwxrwxrwx 1 MGR.APACHE  APACHE 9 Mar 27 20:21
    /APACHE/PUB/bin -> /APACHE/CURRENT/bin

Users should modify or add files below the PUB group and never in the version-specific group. The version-specific group only contains files distributed as part of the Apache product. This makes it possible to remove old releases by simply remove the entire /APACHE/VUUFF directory. Examples of files that should reside under /APACHE/PUB are configuration files, the Apache startup job (JHTTPD), documents served to clients in htdocs/, and cgi scripts.

The installation creates new files or directories under /APACHE/PUB if needed for operation with a new Apache version.

With new Apache releases, the previous version-specific group is not purged. When satisfied with the new version, the user can execute :PURGEGROUP on the previous version-specific group to remove it from the machine.

  :PURGEGROUP /APACHE/VUUFF

To backdate, the CURRENT symlink should be purged and recreated to point to previous version-specific group.

  shell/iX> cd /APACHE
  shell/iX> rm CURRENT
  shell/iX> ln -s VUUFF CURRENT




Introduction


Major Components