Apache Week
   
   Issue 23, 5th July 1996:  

Copyright ©2020 Red Hat, Inc

In this issue


New in 1.1

Apache 1.1 implements a lot of new features, and some changes to existing features. This is a short summary. For more details, see the Apache Week special Guide to 1.1.

Apache 1.1 implements persistent connections using Keep-Alives. It can handle virtual hosts without using additional IP addresses. The main server can listen to specified IP addresses and/or ports, and it can listen to more than one at once.

New modules provide details of the current configuration and the server's running status. Other new modules implement a means of passing environment variables to CGI programs, permitting 'anonymous' access to authenticated areas, and the use of more secure 'digest' authentication.

Internally, Apache now implements 'handlers' as a means of identifying processing to be applied to requests, which was previously done by using special 'magic' mime-types. CGI programs can now be called for particular extensions (mime types) or for a given request method (e.g. to implement a PUT script).

An initial proxy cache module is included, but the code hasn't been as fully tested as other parts of the server, so might still be a little unstable. The imagemap module has been overhauled, providing new directives and functionality.

It is now possible to turn off resolving hostnames at run time, and to use ErrorDocument and Redirect in .htaccess files.


Upgrading from Previous Versions

Apache 1.1 is mostly a drop-in replacement for older versions. However there are some small changes over 1.0.*, which are listed here.

Upgrading to 1.1 is mostly a case of download the new server (either binary or source followed by compilation) and replacing the old binary. Then the new features can be tried and used. The following is a list of changes to existing functions that might affect a site.

  • <Limit>
    The <Limit> directive now applies only to methods explicitly listed. Previously it applied to all methods. Any sites relying on this unexpected effect might need to update their configurations. For example, the directive <Limit POST> used to limit GETs as well. If the intention is to limit GETs, it will need updating to <Limit GET POST>.
  • AuthUserFile
    In an effort to make .htpasswd files more secure, the AuthUserFile directive should now be given a full path file. Previously a filename could be given, should was assume to reside in the current directory. Since this is below the document root, it meant that the .htpasswd file itself could be retrieved by anyone.
  • XBitHack
    XBitHack behavour now only applies to files on type text/html. Previously files on any type would be parsed for includes, including binary files. This prevents this happening, but might affect unusual sites which use includes in files other than text/html.
  • Imagemap
    The imagemap cgi-bin program is no longer distributed. The built-in imagemap module should be used instead.
  • Scoreboard File
    The record of child processes (the scoreboard) is no longer stored in a file on most systems. On systems which implement shared memory, the scoreboard is now kept in memory, which should result in better performance. This means that the httpd_monitor program has nothing to monitor, and should not be used. Some systems cannot use shared memory, so these will continue to use a scoreboard file.

Bugs

Despite the beta testing, a couple of bugs managed to crawl into the release. With software as complex as the Apache server, this should not be a big surpise, and no doubt others will be found. Expect a bug fix release in the near future.

  • Redirect in .htaccess problems
    Using the Redirect directive in .htaccess files does not work properly. Using Redirect in the server configuration files works fine, so this will only affect people making use of the new ability to put Redirects into .htaccess files. Because of the bug, this should not be done.
  • Cookies log format
    The user tracking module, mod_cookies, can output incorrect log lines.

Oops

In Issue 20 we reported on a possible problem with Keep-Alives. We got the problem back-to-front. It should have read

... "This seems to be due to keepalives, where the server closes the connection and the client does not notice" ...