Fedora Caching Proxy

I already have a mirror of Fedora Core current release and updates to make updates and installing packages faster. I have been doing more development recently which means installing Extras and Rawhide package. I wanted to have a mirror of those but didn’t want to have a complete mirror and do the large rsync updates every day. Instead, I setup a reverse proxy with a large cache.

Enable proxy module:

a2enmod proxy

Edit /etc/apache2/mods-enabled/proxy.conf:

    ProxyPass /pub/fedora/extras http://download.fedora.redhat.com/pub/fedora/linux/extras
    ProxyPassReverse /pub/fedora/extras http://download.fedora.redhat.com/pub/fedora/linux/\extras

    ProxyPass /pub/fedora/development http://download.fedora.redhat.com/pub/fedora/linux/co\re/development
    ProxyPassReverse /pub/fedora/development http://download.fedora.redhat.com/pub/fedora/l\inux/core/development

    CacheEnable disk /pub/fedora/extras
    CacheRoot /var/cache/apache2/proxy
    CacheSize 100000
    CacheMaxFileSize 1000000000
    CacheGcInterval 4
    CacheMaxExpire 24
    CacheLastModifiedFactor 0.1
    CacheDefaultExpire 1

Restart Apache.

/etc/init.d/apache2 restart

Now, http://kraken.dyndns.org/pub/fedora/extras/ is a proxy mirror. It is limited to machines on my local network. It isn’t perfect since the files are stored in the cache directory. And it uses the master download site instead of a list of mirrors. The ideal would be a cache that used the files in a normal directory hierarchy. And could rotate between a list of mirrors.