Team,
I've been working on getting jigdo usable for Fedora Unity. In the
process, I needed a way to have a single url to access rpms on public
mirrors. Assume the requested file is foo.rpm What I have done so far
is setup a rewrite map that does the following:
- Pull the mirrorlist while preserving the requesting IP as
X-Fowarded-For (for geoIP)
- Parse the mirrorlist
- Random loop the mirrorlist and request the HEAD for foo.rpm from
a given mirror, if not 404 continue
- Redirect the request for foo.rpm to a public mirror (using 302)
that has verified it has the file
Things I plan on doing:
- Cache results (assuming no DB backend, do RAM caching based on
session; IP, remote mirror, etc)
- Maybe rate public mirrors based on:
- Number of missing files (404)
- Latency (granted this is from the rewrite server)
- Bitrate test (ran every hour or something, also from the
rewrite server)
- Setup a database that can be prepopulated with this data,
potentially using data from mirrormanager
If needed, round robin would help keep things going.. or even just use
pound (or something else) between two machines.
Any thoughts? I'd like to have Fedora Project to provide this feature.
If not, I will be setting it up anyways.
Jonathan Steffan
daMaestro
|
Attachment:
signature.asc
Description: OpenPGP digital signature