Apache Week
   Issue 82, 12th September 1997:  

Copyright 1996-2005
Red Hat, Inc.

In this issue

Apache Status

Apache Site: www.apache.org
Release: 1.2.4 (Released 22nd August 1997) (local download sites)
Beta: None
Alpha: 1.3a1 (Released 23rd July 1997) (local download sites)

Bugs in 1.2.4:
  • mod_rewrite cannot rewrite URLs which contain %2F (the encoded form of the / character)
  • mod_proxy cannot ProxyPass URLs which contains %2F
  • mod_autoindex could display the wrong number of characters in the filename if the filename included HTML entity characters (e.g. ä)

Bugs fixed in 1.3:

  • mod_rewrite would check for the existence of RewriteMap files even if RewriteEngine off was given (and if the file did not exist, it would exit)
  • The Windows version did not have access to full process information in mod_status

Apache 1.2.4 is the current stable release. Users of Apache 1.2.3 and earlier should upgrade to this version. The next release will be 1.3. The first beta of 1.3 will be available shortly. An alpha test release of 1.3 is available now for compilation and testing on Windows 95 and NT systems.

Patches for bugs in Apache 1.2.4 may be made available in the apply to 1.2.4 directory on the Apache site. Some new features and other unofficial patches are available in the 1.2 patches directory. For details of all previously reported bugs, see the Apache bug database and known bugs pages. Also many common configuration questions are answered in the Apache FAQ.

Reliable Logging to Child Process

Apache has supported logging to a separate child process for a long time. Using, for example, TransferLog |logger would cause Apache to start the program called "logger" then send all log lines to this program. The logger program should contain a loop which reads each line from standard input, processes it and writes it as needed to a logfile. Use of suitable logger programs allows for all sorts of functionality such as splitting logs by virtual host, ignoring requests for particular file extensions, or rotating log files automatically. All of which can be done wthout adding complexity to the Apache core code or affecting performance.

The distribution comes with a sample logger program to rotate the log files without having to HUP or USR1 the server itself (in Apache 1.2 the program is in support/rotatelogs.c, while in Apache 1.3 it is in src/support/rotatelogs.c).

However there is a problem with logging to a process. Apache starts the process when it starts up (or receives a USR1 or HUP signal), but does not actively maintain the process. So if the logger process dies or gets stuck such that it does not read any more of the log lines being sent to it, Apache will not notice and log lines may be lost.

From 1.3 onwards, Apache will actively maintain the log process, restarting it if it dies or fails to read the lines being sent to it. This is called a "reliable pipe". With reliable pipes, the use of logging to a pipe will be much more stable. Scripts or programs to do the logging can be written in any language (including C and perl) without having to change the Apache source code.

Reliable Child Support in Module API

The ability to log reliably to a child process via a pipe has been added to Apache. This has been done in a very general way, and modules can make use of an extension to the Apache module API to reliably create and manage a child process. The way this will work is that there is an additional function call that a module can use to create a child process. Whenever the status of the child changes (for example, if it dies or refuses to read its standard input), Apache will call a callback function in the module.

Apache on Rhapsody

A contributed port to make Apache work on Rhapsody, Apple's new OS, is under development. Rhapsody includes a BSD Unix compatibility layer to make porting Unix software possible.

Apache Still Number One

Apache is still the most widely used server on the Internet, and is still increasing market share faster than any if the other major servers, according to the September Netcraft Server Survey. The changes in market share are small, but Apache leads with an increase of 0.80%. Microsoft had an overall increase of 0.06%, while Netscape suffered a slight decrease by 0.24%. Overall, Apache is used by over 44% of the world's Internet sites, and even more if servers based on Apache and sites which are using Apache but customise the server identity are included. Microsoft servers are used on 18% of sites, and Netscape servers on 12%.

Apache in the News

The Scotsman newspaper comments on free software in Wild web's free spirits, with a mention of Apache. However they equate free software with the FSF's copyleft, whereas much free software (including Apache) is not released under the copyleft license. The essential difference is that software under copyleft cannot be incorporated into commercial products unless the commercial product is itself released as free software (it may also be sold, but the buyer has to be aware that they could get it for free). By contrast Apache and many other free projects can be incorporated into commercial products, with no obligation to make the product available free or in source form.

Publication Date

The next issue of Apache Week will be published on Thursday 18th September rather than the usual Friday.

Comments or criticisms? Please email us at editors@apacheweek.com