Project description.

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT.

The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards

Apache 2.0.34 Changelog
  • Allow all Perchild directives to accept either numerical UID/GID or logical user/group names. [Scott Lamb ]
  • Make Perchild compile cleanly and serve pages again. [Ryan Bloom]
  • implement ssl proxy to support ProxyPass / https:// and the SSLProxy* directives [Doug MacEachern]
  • Update mod_cgid to not do single-byte socket reads for CGI headers [Brian Pane]
  • Made AB's use of the Host: header rfc2616 compliant by Taisuke Yamada [Dirk-Willem van Gulik].
  • The old, legacy (and unused) code in which the scoreboard was totally and completely contained in a file (SCOREBOARD_FILE) has been removed. This does not affect scoreboards which are *mapped* to files using named-shared-memory. [Jim Jagielski]
  • Change bucket brigades API to allow a "bucket allocator" to be passed in at certain points. This allows us to implement freelists so that we can stop using malloc/free so frequently. [Cliff Woolley, Brian Pane]
  • Add support for macro expansion within the variable names in and directives [Brian Pane]
  • Fix some mod_include segfaults [Cliff Woolley, Brian Pane, Brad Nicholes]
  • Update the "RedHat" Layout to match Red Hat Linux version 7. PR BZ-7422 [Joe Orton]
  • add compat layer to support RSA SSLC 1.x and 2.x in mod_ssl [Jon Travis, John Barbee, William Rowe, Ryan Bloom, Doug MacEachern]
  • Add a new parameter to the quick_handler hook to instruct quick handlers to optionally do a lookup rather than actually serve content. This is the first of several changes required fix several problems with how quick handlers work with subrequests. [Bill Stoddard]
  • worker MPM: Get MaxRequestsPerChild to work again. [Jeff Trawick]
  • [APR-related] The ordering of the default accept mutex method has been changed to better match what's done in Apache 1.3. The ordering is now (highest to lowest): pthread -> sysvsem -> fcntl -> flock. [Jim Jagielski]
  • Ensure that the build/ directory is created when using VPATH. [Justin Erenkrantz]
  • Add some popular types to the mime magic file. PR 7730. [Linus Walleij , Justin Erenkrantz]
  • Remove the single-byte socket reads for CGI headers [Brian Pane]
  • When a proxied site was being served, Apache was replacing the original site Server header with it's own, which is not allowed by RFC2616. Fixed. [Graham Leggett]
  • Fix a mod_cgid problem that left daemon processes stranded in some server restart scenarios. [Jeff Trawick]
  • Added exp_foo and rel_foo variables to config_vars.mk for all Apache and Autoconf path variables (like --sysconfdir, --sbindir, etc). exp_foo is the "expanded" version, which means that all internal variable references have been interpolated. rel_foo is the same as $exp_foo, only relative to $prefix if they share a common path. [Aaron Bannert]
  • Fix some restart/terminate problems in the worker MPM. Don't drop connections during graceful restart. [Jeff Trawick]
  • Change the header merging behaviour in proxy, as some headers (like Set-Cookie) cannot be unmerged due to stray commas in dates. [Graham Leggett]
  • Be more vocal about what AcceptMutex values we allow, to make us closer to how 1.3 does it. [Jim Jagielski]
  • Get nph- CGI scripts working again. PRs 8902, 8907, 9983 [Jeff Trawick]
  • Upgraded PCRE library to latest version 3.9 [Brian Pane]
  • Add accessor function to set r->content_type. From now on, ap_rset_content_type() should be used to set r->content_type. This change is required to properly implement the AddOutputFilterByType configuration directive. [Bill Stoddard, Sander Striker, Ryan Bloom]
  • Add new M_FOO symbols for the WebDAV/DeltaV methods specified by RFC 3253. Improved the method name/number mapping functions. [Greg Stein]
  • remove sock_enable_linger from connection.c [Ian Holsman]
  • Fix for virtual host processing where the requested hostname has a '.' at the end (PR 9187) [Ryan Cruse ]
  • mod_dav's APIs for REPORT response handling was changed so that providers can generate the content directly into the output filter stack, rather than buffering the response into memory. [Greg Stein]
  • Fix a hang condition with graceful restart and prefork MPM in the situation where MaxClients is very high but much fewer servers are actually started at the time of the restart. [Jeff Trawick]
  • Small performance fixes for mod_include [Brian Pane]
  • Performance improvement for the error logger [Brian Pane]
  • Change configure so that Solaris 8 and above have SINGLE_LISTEN_UNSERIALIZED_ACCEPT defined by default. according to sun people solaris 8+ doesn't have a thundering herd problem [Ian Holsman]
  • Allow URIs specifying CGI scripts to include '/' at the end (e.g., /cgi-bin/printenv/) on AIX and Solaris (and other OSs which ignore '/' at the end of the names of non-directories). PR 10138 [Jeff Trawick]
  • implement SSLSessionCache shmht and shmcb based on apr_rmm and apr_shm. [Madhusudan Mathihalli ]
  • Fix apxs -g handling. Move config_vars.mk from the top build directory to the build directory. PR 10163 [Jeff Trawick]
  • Fix some mod_include problems which broke evaluation of some expressions. PR 10108 [Jeff Trawick]
  • Fix the calculation of request time in mod_status. [Stas Bekman]
  • Fix the calculation of thread_num in the worker score structure. [Stas Bekman]
  • Use apr_atomic operations in managing the mod_mem_cache cache_objects for SMP scalability. (see USE_ATOMICS preprocessor directive in mod_file_cache) [Bill Stoddard]
  • Add filehandle caching to mod_mem_cache. (see CACHE_FD preprocessor directive in mod_file_cache) [Bill Stoddard]
  • Implement prototype mod_disk_cache for use with mod_cache. [Bill Stoddard]
  • Add a missing manualdir entry in the Debian config.layout. [Thom May ]
  • Stop installing libtool for APR and tell APR where it should place its copy of libtool (via our installbuildpath layout variable). [Justin Erenkrantz]
  • New directive ProxyIOBufferSize. Sets the size of the buffer used when reading from a remote HTTP server in proxy. [Graham Leggett]
  • Modify receive/send loop in proxy_http and proxy_ftp so that should it be necessary, the remote server socket is closed before transmitting the last buffer (set by ProxyIOBufferSize) to the client. This prevents the backend server from being forced to hang around while the last few bytes are transmitted to a slow client. Fix the case where no error checking was performed on the final brigade in the loop. [Graham Leggett]
  • Scrap CacheMaxExpireMin and CacheDefaultExpireMin. Change CacheMaxExpire and CacheDefaultExpire to use seconds rather than hours. [Graham Leggett, Bill Stoddard]
  • New Directive SSIUndefinedEcho. to change the '(none)' echoed for a undefined variable. [Ian Holsman]
  • Proxy HTTP and CONNECT: Keep trying other addresses from the DNS when we can't get a socket in the specified address family. We may have gotten back an IPv6 address first and yet our system is not configured to allow IPv6 sockets. [Jeff Trawick]
  • Be more careful about recursively removing CVS directories. Make sure that we aren't cd'ing to their home directory first. PR: 9993 [Aaron Bannert, James LewisMoss ]
  • Add a missing errordir entry in the Debian config.layout. PR: 10067 [Dirk-Jan Faber , Aaron Bannert, Thom May ]
  • Rename the filter ordering priorities. The recent filtering fixes have showcased problems with their usage. Therefore, we need to rename them to increase the clarity. (CONTENT->RESOURCE, HTTP_HEADER->CONTENT_SET/PROTOCOL) [Justin Erenkrantz]