Features
- open source
- very fast, suitable for high-traffic sites
- small memory footprint
- redirects clients according to their geographic location
- HTTP redirection works transparently with any client that conforms to the HTTP standards, like web browsers, download managers, wget, ...
- mirror is chosen from the same country or continent, after geolocation of the client (its IP address is looked up in a GeoIP database)
- uses a randomized, weighted algorithm for mirror selection.
- redirects can be optional, depending on criteria like file name pattern, file size, MIME type, user agent, request origin, or others
- can also generate Metalinks, instead of redirecting the client. A Metalink, in essence, is a machine-readable mirror list to be used by metalink clients (a very clever, next-generation, download regime). The MirrorBrain supports transparent negotiation of metalinks.
- can also generate mirror lists (even per-file, see this example). It is trivial to generate other mirror lists from the database.
- Metalinks and mirror lists are generated in real-time, specific to the client's geographic location
- operates with file level granularity. Thus, it works well with partial mirrors, and is suitable for very large file trees that are difficult to keep in sync across mirrors, and content with high turnover rate. Also, mirrors are scanned, and tested if they correctly deliver files which are larger than 2 or 4 GB in size.
- optionally memorizes the client-mirror association (utilizing a memcache daemon)
- allows individual configuration of mirrors
- each mirror can be assigned a priority, which influences its probability of being used.
- mirrors can be configured to get only requests from their country (or region) -- which is important for countries with poor Internet connectivity.
- integrates with content delivery networks (CDNs). CDNs can be defined as catch-all mirrors that are treated as mirrors in the same country as the client.
- is highly configurable
- configuration is done within Apache, thus benefitting from its automatic per-directory configuration merging
- flexible logging options
- there is a debug mode which can be enabled directory-wise: even if the server is under high load and gets lots of requests, it is possible to enable a detailed debug log for only a dedicated part of the directory tree (which doesn't get as many requests). Thus, trouble-shooting is compatible with running in production.
- the client IP address (which determines the mirror choice) can be overridden for diagnostic purposes