ApacheMirror.py for a site-local Fedora mirror
Ed Swierk
eswierk at arastra.com
Tue Nov 20 02:19:02 UTC 2007
Having tired of babysitting the rsync cron job that was keeping my
local Fedora mirror up-to-date, I tried the caching proxy approach
suggested at http://fedoraproject.org/wiki/Infrastructure/Mirroring/SiteLocalMirrors
for a few weeks. This, too, was unsatisfactory--I still want some
control over the mirrored content and the ability to pre-populate the
cache from a DVD ISO acquired via bittorrent when a new version of
Fedora is released.
ApacheMirror.py is a mod_python request handler that behaves like a
caching proxy, except it maps the URL path of a cached document
directly to a local directory rather than hashing the URL, this
preserving the mirror directory structure.
Just drop ApacheMirror.py into /usr/lib/python*/site-packages, set
your preferred upstream server and point it at a local directory on a
nice big disk, and forget it:
<VirtualHost *:80>
ServerName mirrors.sample.com
ServerName mirrors
DocumentRoot /mirrors
SetHandler mod_python
PythonHandler ApacheMirror
PythonDebug on
PythonOption ApacheMirror.upstream http://download.fedora.redhat.com
</VirtualHost>
The implementation is by no means bulletproof--consider this release
0.1--but it's worked well enough to serve local yum needs for the past
few days.
If there's interest, I could package up the script into an srpm (which
seems overkill for 50 lines of Python) or submit it as a patch to some
existing package.
--Ed
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ApacheMirror.py
Type: application/octet-stream
Size: 4135 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20071119/66b80b83/attachment.obj>
More information about the fedora-devel-list
mailing list