Apache Week
Issue 3, 23rdFebruary1996:

Copyright 2020 Red Hat, Inc

In this issue


  • The RefererIgnore directive only uses the first hostname given.
  • Server side includes were not getting passed all the environment variables they should have been. A patch was submitted. Note that double quotes are required around the arguments to the var directive.
  • The Cookie module again caused problems with the 1.1b0 release

New Versions

There will be two releases of Apache; one "stable" and one "development". This week version 1.0.3 (stable) was built. Any major bug fixes will become 1.0.4 (and so on). The stable branch will not have any new features added to it.

Development Version: 1.1b0a. Not yet ready for a public beta but was built from a number of patches of new features. Some documentation on these features is starting to be written.

Discussions and Patches

Startup Code
The current Apache API has no easy way to add code that is performed when a child is first started (or ended). For example, startup code could open a database and keep it open for low latency authentication. A similar API problem exists with the Expires module. Currecntly Fixup modules are called each time an attempt to return a file is made, this can happen several times before the final document is sent back to the client.
Internal Redirects
Internal Redirects can occur when CGI scripts output "Location:" headers or a module wants to return a different location (such as the imagemap module). It was suggested that CGI headers should survive an internal redirect. It is easy to make the headers do so although there is ambiguity as to how similar headers should overlap. Headers could be merged (but this is invalid for most headers), overwritten, or duplicated.
Shared Memory
A scoreboard file in the /tmp directory currently holds information the server uses to identify information such as how many children are currently running. It was suggested that using shared memory (or a similar technique) would speed up the scoreboard processing and hence decrease the server CPU effort. However, not all systems support shared memory and their was some concern that the performance gains may not be worth the effort. Some initial testing showed the scoreboard added up to 3% to the processing time of small requests. An initial patch for this was submitted.
Benchmarks are tricky things to get right. We have already seen Spyglass take the Webstone benchmark and tweak it to favour their server. To do an accurate benchmark you must use the exact same software and hardware configuration for each test. For interest, Netscape say they have 40 million hits per day (16-20 Unix machines), Microsoft say they have 4.5 million (2 NT machines).
User Directories
A new patch to the user directory module was submitted to allow user directories to live at any URL and to search though a list of possible home page locations. So now when a user requests /~fred/ the server can first check ~fred/public_html/ then /a/b/fred/c/d/ and if those fail issue a redirect to another path on another site.
Environment Variables
In Apache 1.1, environment variables can be set up in the configuration files and are then passed out to all CGI scripts, SSI documents etc. Various discussion took place about how extra variables should work with Virtual Hosts. Virtual Hosts will inherit the default environment and can extend it. An new directive should be available to remove a variable for a particular virtual host.
CVS: Source code control for Apache
Apache 1.1b0a was committed to the CVS tree. To allow for local setup the Configuration and Makefiles have been altered. Developers can now submit patches to the CVS tree.
  • The enhanced imagemap module was finally submitted as a patch.
  • The proxy module had bug fixes and patches to make it compliant with HTTP specs for 1.1b0.
  • A way to find out what modules are compiled into a server is needed