This page describes the requirements and an ideal strategy for mirroring Apache Software Foundation releases. More information can be obtained from the infrastructure@apache.org mailing list.
Any project willing to use the ASF infrastructure to distribute source, binary and documentation builds must adhere to the following guidelines.
These guidelines have been developed so that a consistent way to mirror our distributions can be achieved, therefore lowering the impact of the enormous amount of bandwidth consumed by our downloads.
Software distributions should not be kept on the project's website. Instead, they should be moved to the appropriate central site. There are three types of software distributions with three different locations:
Do not point your download links directly at www.apache.org. Instead, point these links at the mirrors. Also note that you should wait around 24 hours between placing your files in the download directories and sending out announcements with links to the mirrors. This is the time necessary for the majority of mirrors to grab the files.
Read these instructions thoroughly before configuring your project mirror. See also the ASF and Ant Step-By-Step guides to mirroring, and the excellent mirroring, PGP and MD5 resources by Henk. Review how other ASF projects do their mirrors.
The HTTP Server project is using the following system to achieve its mirroring goals. Please see it in action at http://httpd.apache.org/download.cgi.
This page uses a templating system that replaces links of the form <a href="[preferred]/httpd/">link</a> with <a href="http://www.apache.org/dist/httpd/">link</a>. Please look at the source for the download.xml page. Please pay attention to the [location], [preferred], [http], [ftp], [backup] tags.
An alternative that is quicker to setup, but less elegant, is to use the http://www.apache.org/dyn/closer.cgi script. This script understands the PATH_INFO environment variable which can be used to point to particular directories on the mirrors. For example, http://www.apache.org/dyn/closer.cgi/httpd/docs/ points to documentation distributions for the HTTP Server project.
Read this for more information on creating download pages.
If you are unable to wait 24 hours before announcing your release,
then you can pass a date and time to the download script to indicate
that only mirrors that have updated since that time should be
selected. This works by adding update=YYYYMMDDhhmm
to
the query string. For example, you can use
http://httpd.apache.org/download.cgi?update=200407051415
to request only mirrors that have updated after 2:15pm on July 5, 2004
Pacific time. Please use this option sparingly, since it can result
in excessive load on particular mirrors. It would be appropriate, for
example, in an emailed release announcement for an important security
release, but should not usually be used as a main website link.