Apache Http Server 2.2



Apache http server 2.2.11Apache

Apache httpd 2.2 End-of-Life 2018-01-01 ¶ As previously announced, the Apache HTTP Server Project has discontinued all development and patch review of the 2.2.x series of releases. The Apache HTTP Server Project had long committed to provide maintenance releases. Apache is a remarkable piece of application software. It is the most widely used Web Server application in the world with more than 50% share in the commercial web server market. Apache is the most widely used Web Server application in Unix-like operating systems but can be used on almost all platforms such as Windows, OS X, OS/2, etc. Screen shots: Download: Download Apache HTTP Server 2.2.22 VirusTotal results: Change log: n/a: Description: HTTP server. The server runs on the port 8083. License: Apache License 2.0: Version: 2.2.22. However, the default connection timeout of Apache httpd 1.3 and 2.0 is as little as 15 seconds and just 5 seconds for Apache httpd 2.2 and above. The advantage of a short timeout is the ability to deliver multiple components of a web page quickly while not consuming resources to run multiple server processes or threads for too long.

Migrating an IHS configuration file from a previous release

Http

The preferred method of migration is to apply your customizations over the new default configuration. If this is prohibitively complicated, it is possible to manually migrate a configuration from a prior release.

Apache Http Server 2.2

The following are steps to change an IHS 7.0, 8.0, or 8.5 httpd.conf such that it is useable on an IHS 9.0. This procedure assumes the installation paths of the old and new releases differ.

  1. Copy your prior releases configuration file(s) to the new installation path.
  2. Update paths if the install root has changed. Many absolute paths within the configuration contain the install root. Replacing old paths can be done quickly using the sed command, e.g. This command copies httpd.conf from the prior releases installation directory to the new installation directory, and replaces all instances of /opt/IBM/IHSv8/ with /opt/IBM/IHSv9/.
  3. Remove <IfModule worker.c> and the </IfModule> that follows it, leaving the contained directives. On Linux, IHS uses the 'event' MPM and this <IfModule worker.c> would hide the MPM configuration.
  4. Replace authz_default_module with authz_core_module; i.e. replace with If the module is not replaced, you will receive an error similar to the following:
  5. Update access control. Take only one of the following actions:
    • Replace the old access control directives Order, Allow, and Deny with the new Require directive. Refer to the Access Control section below. This is preferred.
    • Otherwise, load the mod_access_compat module by adding the following line to the configuration:
    • Remove AuthSAFAuthoritative if present (see information at the bottom of this document for more details)
    If neither step is taken, the resulting error message resembles the following:
  6. Load the mod_unixd security module by adding the following line to the configuration: Otherwise, the following error occurs:
  7. Update the WAS plugin by changing the LoadModule line from: to:
  8. Update third-party modules to their Apache 2.4 versions. There are no general instructions for this step; contact the third-party module's vendor for explicit instructions.

    If modules are not compatible with Apache 2.4, you can receive one of two types of error messages. The examples below are how the message is reported on z/OS -- the operative parts of the message are problems with symbols similar to 'ap_my_generation' or 'ap_log_error'.

    The first form resembles this: To figure out which module is causing the problem, start the server with the -e debug option, e.g. This should partially output your configuration file, and then output the error. The line of the configuration after the last line which is printed should be a LoadModule directive containing the name of the failing module. The other type of error message that may be shown when a module is incompatible with Apache 2.4/IHS version 9.0 looks like this: The problematic module's name is contained within the error message - in this case, myapp22_module.
  9. Search your configuration for directives such as Include, AuthUserFile, AuthGroupFile, and KeyFile. These directives may either point to files under the old installation root that need to be copied.
  10. If using the 'BFlagEscapeAllNonAlnum' parameter to RewriteOptions, remove it. It's the default and only behavior in this and future releases.
  11. Linux only: Add a line to dynamically load the Event MPM, e.g. 'LoadModule mpm_event_module modules/mod_mpm_event.so'?
  12. Attempt to start the server with the updated configuration. Review the output of the start command and the error_log to make sure no errors were reported. If a directive has been removed or has moved to a new module, you may see an error resemlbing this message:

    Consult the rest of this document for informaton about the specific directive, then check http://publib.boulder.ibm.com/httpserv/manual24/mod/directives.html to find the proper module to load.

    This step will likely require a number of rounds of iteration, as only 1 error is detected at a time.

  13. Optional: Review and apply other changes to the default configuration (httpd.conf.default) in the new release:
    • ReportInterval has been reduced to 300 seconds.
    • TrackModules On, TrackHooks allhooks, SlowThreshold 60, TrackHooksOptions logslow have been added.
    • mod_backtrace is now loaded on some platforms where it was unintentionally omitted in previous releases.
    • The default 'LogFormat' now has additional columns appended for serviceability.
    • The default config has been updated to deny access to all directories by default and then explicitly allow access to the document root, icons, CGI-BIN, etc.

After taking all the above steps, the configuration should be ready to be loaded by IHSv9.0. The remainder of the document serves as a reference for what has changed between Apache 2.2 and 2.4.

How it Works

Apache http server 2.2 21 download

A single control process is responsible for launching child processes which listen for connections and serve them when they arrive. Apache always tries to maintain several spare or idle server processes, which stand ready to serve incoming requests. In this way, clients do not need to wait for a new child processes to be forked before their requests can be served.

The StartServers, MinSpareServers, MaxSpareServers, and MaxClients regulate how the parent process creates children to serve requests. In general, Apache is very self-regulating, so most sites do not need to adjust these directives from their default values. Sites which need to serve more than 256 simultaneous requests may need to increase MaxClients, while sites with limited memory may need to decrease MaxClients to keep the server from thrashing (swapping memory to disk and back). More information about tuning process creation is provided in the performance hints documentation.

Apache Http Server 2.2

While the parent process is usually started as root under Unix in order to bind to port 80, the child processes are launched by Apache as a less-privileged user. The User and Group directives are used to set the privileges of the Apache child processes. The child processes must be able to read all the content that will be served, but should have as few privileges beyond that as possible.

Apache Http Server 2.2.22

MaxRequestsPerChild controls how frequently the server recycles processes by killing old ones and launching new ones.