Apache Week
Issue 1, 9thFebruary1996:

Copyright 2020 Red Hat, Inc

In this issue

Bugs found

A few bugs were found in the public release of 1.0.2 which required fixing (1.0.2 with Apache-SSL found a problem with the Cookie Module). It was noted that setting the directive "MinSpareServers" to "0" causes some problems and it should be trapped later.

The IP restriction code was making the incorrect assumption that all hostnames would start with an alphabet character. Domain names such as "90210.com" are not valid but have still been issued by Internic.

New Versions

Current version: 1.0.2

The version number scheme decided previously was again confirmed. Version numbers 1.0.* are to be used for bug fixes (only) from 1.0.0. New feature enhancements will be tested in versions 1.1* (Initially 1.1b1) which have been waiting since the feature freeze imposed before 1.0.0 was released.

Many patches came in during the week for 1.0.2. A call for votes will be issued at the end of the 9th, with voting lasting up to a week. It may take some time to test all the new patches.


Virtual Hosts
The BindAddress and virtual host feature currently limit the way a site can run different brands of server on the same machine. The Apache server cannot be made to listen to a number (but not all) virtual hosts on a site. If a site wishes to run five Apache virtual domains and one with another server they must have five copies of the Apache server running.
Microsofts Internet Explorer now allows a user to specify any user-agent string, hence defeating any remaining sites that use user-agents to negotiate content. Using user-agents to negotiate content is not recommended but is sometimes the only way to work out which browsers support which features. (Comment from www.suck.com)
Various discussions took place about porting Apache to the BeBox. There will be some difficulties with the TCP/IP networking mainly because sockets are not inherited by forked processes.
Status and Monitoring
A discussion about providing easy performance statistics and monitoring took place. There doesn't appear to be a cross-platform solution to replacing the scoreboard file. If the scoreboard file is moved into memory then the server will need to make it accessible to external monitoring programs at some interval.
  • Apache for OS/2 was mentioned in PC Week
  • The Apache site went black for 48 hours in protest of the US Communications Decency Act.


A (large) number of patches were submitted that will be voted on starting 10th February. In addition a number of new features are being developed:

A "keep-alive" patch was written to implement persistent connections. During the week a number of alterations were made to the code including addition of a timeout directive. A bug in Netscape was discovered with the way it handled small documents using keep-alive (It would hang until the connection timed out). The latest patch (90f) worked around this bug. The patch may still need further work so that it cleans up after each request and to give it the addition of a directive to turn off the feature. It was found to be suprising that "Keep-alive" works at all since it is (yet) another feature that was added by vendors before the specification was agreed. Keep-Alives cannot be trusted through a proxy. In fact netscape sends Proxy-Connection: Keep-Alive talking to a proxy, but this gets confusing when standard servers can also act as proxies, like the Apache proxy module, or when you have chains of proxies.

The proxy module submitted last week was completely re-written with many new features and abilities and will be voted on for inclusion in the next release.

A module mod_ftp was submitted to provide a better version of mod_dir for ftp directories. The name "mod_ftp" could be confusing as it implies a module that performs ftp (such as a ftp proxy). The module relies on table support in the browser at present.

A new module, Mod_expires allows Expires headers to be based on content type with default expiry dates. This lets documents expire a fixed time after their modification date or after their last access. There was discussion on the best way for the expires directives to work. The experimental expires module currently uses the CERN syntax; but the CERN syntax isn't that good.