There are mirrors of the Debian WWW pages in the following countries:
If your country is not listed and you would like to sponsor a mirror, please let us know. If your country is already listed, there's most probably no need for another mirror. We generally do not encourage creating new Debian web site mirrors.
Our web site mirrors require maintenance (a bit more than the FTP site mirrors, even, since you need to change Apache config files every now and then) and cost the sponsors resources. However, due to the nature of web pages, which you don't need to download regularly and for which you don't care much if they arrive at 2kbps or at 30kbps since they are quite small, the question of whether having many web site mirrors is useful arises.
There were times when the Internet connections over the world weren't fast, and e.g. getting to www.debian.org from another continent was painful and much slower than a typical modem connection. So we organized mirroring and several web site mirrors came to existence. Ten (or eleven, if you count Turkey) of them are in Europe.
However, today we have blazing fast network links, especially in Europe, so there is hardly any need for this many mirrors. In fact, due to the increased speed of network links between Europe and America, it's not even slow to access www.debian.org from Europe.
That is basically why we don't need any more web site mirrors, especially not on continents where there are already mirrors in place. Please respect our wishes. Thank you for your cooperation.
If you have any questions, send mail to mirrors@debian.org.
The information below this point is provided only for reference to the maintainers of existing mirrors.
The recommended method of mirroring is with rsync. There is no anonymous access to the web site files. You can set up authenticated access with the maintainer of the site you wish to mirror from, please send email to mirrors@debian.org.
The mirroring is a pull
process, i.e. the client requests the data from
the server at their own convenience. To set this up, you can use the
websync script and its
configuration file, which can be run from crontab, and which will do
everything automatically. Follow the directions in the script to make sure
everything works fine.
Push mirroring is a form of mirroring using rsync that we have developed to minimize the time it takes for changes to the archive to reach mirrors. The server mirror uses an ssh trigger to tell the client mirror to update itself.
This method is quite secure as ssh is configured to run only a single
command. Also, mirroring is still pull
so it is not
possible to corrupt the contents of the archive via a forged push mirror.
Some mirror administrators have shown some reluctance to using this method of
mirroring due to fears that the method may open their machine to invasion.
This is simply not true.
For a more detailed description of how this works, why it is secure, and how to set a push mirror, please see the complete explanation.
The main site gets updated approximately every four hours.
If your site is being push mirrored, then you don't need to worry about
this. If not, you should calculate the mirroring time for your site
according to the dates on timestamp files in
/mirror/timestamps/ directory of the web site mirror. Add some
time, say half an hour, to that time and mirror then.
The easiest way to automatically have the mirror run every day is to use cron. See man crontab for details.
If you wish, you may replace the image sponsor_img.jpg by an
(unobtrusive) logo of your own company or organisation, and make
sponsor.html a redirect to your own homepage. By default, both of
those files are not mirrored. The defaults are named
sponsor.deb.html and sponsor.deb.jpg; although you
may use these default files, we encourage you to provide your own image. The
suggested maximum size for your logo is 120x60px.
Since content negotiation is being used on the web pages
to select the preferred language, you may even provide
sponsor.html in different languages. To do this you simply create
sponsor.<lang>.html for each <lang> you would like.
Make sure you add any files you don't want overwritten to the exclude list for mirroring.
If your machine is running Debian, it was decided to break Debian policy
and use /doc in the web pages. This means you should comment
out the
line from your
Alias /doc/ /usr/share/doc//etc/apache/srm.conf file.
Note: all of our CGI scripts are run centrally on cgi.debian.org, so you don't need to worry about them.
Content Negotiation is a method which lets a browser negotiate with a server the type of document that should be served. While there are a number of uses for this, the most common is to negotiate what language a document should be served in. Using this will allow Debian to serve its pages in multiple languages in a (technically) very elegant fashion.
For those who are using Apache, the change is almost trivial. Simply add this option:
Options +Multiviews
to the <Directory> section for the Debian web pages in your
/etc/apache/access.conf file, and restart the server.
Additionally, you need to make sure that the server can handle all the languages that will be on the web site. This is done using the AddLanguage tag. The following is a list of those languages already used - expect to add more later:
AddLanguage en .en AddLanguage ar .ar AddLanguage bg .bg AddLanguage ca .ca AddLanguage cs .cs AddLanguage da .da AddLanguage de .de AddLanguage el .el AddLanguage eo .eo AddLanguage es .es AddLanguage fa .fa AddLanguage fi .fi AddLanguage fr .fr AddLanguage he .he AddLanguage hr .hr AddLanguage hu .hu AddLanguage hy .hy AddLanguage id .id AddLanguage it .it AddLanguage ja .ja AddLanguage ko .ko AddLanguage lt .lt AddLanguage nb .nb AddLanguage nl .nl AddLanguage pl .pl AddLanguage pt .pt AddLanguage ro .ro AddLanguage ru .ru AddLanguage sk .sk AddLanguage sl .sl AddLanguage sv .sv AddLanguage ta .ta AddLanguage tr .tr AddLanguage uk .uk AddLanguage pt-br .pt AddLanguage nb .nb AddLanguage zh-CN .zh-cn AddLanguage zh-HK .zh-hk AddLanguage zh-TW .zh-tw
Due to a bug in apache the wrong language can be served in some circumstances, so it is a good idea to add every language served to the LanguagePriority option, like this:
LanguagePriority en fr es ar bg ca cs da de el eo fa fi he hr hu hy id it ja ko lt nb nl pl pt ro ru sk sl sv ta tr uk pt-br nb zh-CN zh-HK zh-TW
In order to avoid serving content-negotiated files with wrong charset,
make sure that the AddDefaultCharSet setting is either
commented out or set to
.
Off
If using apache 1, in order to serve directory index files correctly, you
will probably need to modify the DirectoryIndex entry in
/etc/apache/srm.conf. This won't work with apache 2 though.
The following should be sufficient for apache 1:
DirectoryIndex index index.html
To send the correct Content-Type header for favicon.ico, Apache should be instructed to use the image/x-icon type, like this:
AddType image/x-icon .ico
To send the correct Context-Type header for RSS feeds, Apache should be instructed to use the application/rss+xml type, like this:
AddType application/rss+xml .rdf
To avoid problems with content-negotiation with the content under /events, calendar files need to be assigned a lower priority than text/html content:
AddType text/calendar;qs=0.9 .ics
Because some parts of the web site were beginning to be too large to be mirrored by most sites, we have separated them from the main site. Although most links should be converted to use the new locations, you're welcome to add a redirect to another site so no links are broken. This can be done in /etc/apache/srm.conf. For example:
Redirect /Lists-Archives http://lists.debian.org/ Redirect /search http://search.debian.org Redirect /Packages http://packages.debian.org Redirect /lintian http://lintian.debian.org