Overview of new features in Apache 2.0
Enhancements:
Core Enhancements
- Unix Threading
- On Unix systems with POSIX threads support, Apache can
now run in a hybrid multiprocess, multithreaded mode. This
improves scalability for many, but not all configurations.
- New Build System
- The build system has been rewritten from scratch to be
based on autoconf and libtool. This makes Apache's
configuration system more similar to that of other
packages.
- Multiprotocol Support
- Apache now has some of the infrastructure in place to
support serving multiple protocols. mod_echo has been written
as an example.
- Better support for non-Unix
platforms
- Apache 2.0 is faster and more stable on non-Unix
platforms such as BeOS, OS/2, and Windows. With the
introduction of platform-specific multi-processing modules (MPMs) and the
Apache Portable Runtime (APR), these platforms are now
implemented in their native API, avoiding the often buggy and
poorly performing POSIX-emulation layers.
- New Apache API
- The API for modules has changed significantly for 2.0.
Many of the module-ordering/-priority problems from 1.3 should
be gone. 2.0 does much of this automatically, and module ordering
is now done per-hook to allow more flexibility. Also, new calls
have been added that provide additional module capabilities
without patching the core Apache server.
- IPv6 Support
- On systems where IPv6 is supported by the underlying
Apache Portable Runtime library, Apache gets IPv6 listening
sockets by default. Additionally, the Listen, NameVirtualHost, and VirtualHost directives support
IPv6 numeric address strings (e.g., "Listen
[fe80::1]:8080").
- Filtering
- Apache modules may now be written as filters which act on
the stream of content as it is delivered to or from the
server. This allows, for example, the output of CGI scripts
to be parsed for Server Side Include directives using the
INCLUDES filter in mod_include.
- Multilanguage Error Responses
- Error response messages to the browser are now provided in
several languages, using SSI documents. They may be customized
by the administrator to achieve a consistent look and feel.
- Simplified configuration
- Many confusing directives have been simplified. The often
confusing Port and BindAddress directives are gone; only the
Listen directive is used for IP address binding; the
ServerName directive specifies the server name and port number
only for redirection and vhost recognition.
- Native Windows NT Unicode Support
- Apache 2.0 on Windows NT now uses utf-8 for all filename
encodings. These directly translate to the underlying Unicode
file system, providing multilanguage support for all Windows
NT-based installations, including Windows 2000 and Windows XP.
This support does not extend to Windows 95, 98 or ME, which
continue to use the machine's local codepage for filesystem
access.
Module Enhancements
- mod_ssl
- New module in Apache 2.0. This module is an interface
to the SSL/TLS encryption protocols provided by
OpenSSL.
- mod_dav
- New module in Apache 2.0. This module implements the HTTP
Distributed Authoring and Versioning (DAV) specification for
posting and maintaining web content.
- mod_auth_digest
- Includes additional support for session caching across
processes using shared memory.
- mod_charset_lite
- New module in Apache 2.0. This experimental module allows
for character set translation or recoding.
- mod_file_cache
- New module in Apache 2.0. This module includes the
functionality of mod_mmap_static in Apache 1.3, plus adds
further caching abilities.
- mod_headers
- This module is much more flexible in Apache 2.0. It can
now modify request headers used by mod_proxy, and it can
conditionally set response headers.
- mod_proxy
- The proxy module has been completely rewritten to take advantage
of the new filter infrastructure and to implement a more
reliable, HTTP/1.1 compliant proxy. In addition, new
<Proxy> configuration sections provide more readable
(and internally faster) control of proxied sites; overloaded
<Directory "proxy:..."> configuration are not supported. The
module is now divided into specific protocol support modules
including proxy_connect, proxy_ftp and proxy_http.
- mod_negotiation
- A new ForceLanguagePriority directive can be used to assure that
the client receives a single document in all cases, rather than
NOT ACCEPTABLE or MULTIPLE CHOICES responses. In addition, the
negotiation and MultiViews algorithms have been cleaned up to
provide more consistent results and a new form of type map that
can include document content is provided.
- mod_autoindex
- Autoindex'ed directory listings can now be configured to
use HTML tables for cleaner formatting, and allow finer-grained
control of sorting, including version-sorting, and wildcard
filtering of the directory listing.
- mod_include
- New directives allow the default start and end tags for SSI elements
to be changed and allow for error and time format configuration
to take place in the main configuration file rather than in the
SSI document. Results from regular expression parsing and grouping
(now based on Perl's regular expression syntax) can be retrieved
using mod_include's variables $0 .. $9.
- mod_auth_dbm
- Now supports multiple types of DBM-like databases using the
AuthDBMType
directive.
- mod_auth_db
- Has been removed in favor of mod_auth_dbm with the AuthDBMType
directive.