Apt-cacher and Apt-proxy
Solution 1:
Use approx. I had continuous issues with apt-proxy, switching to approx solved all my problems.
Solution 2:
If you read both of these you should be able to figure out the difference.
apt-proxy
apt-cacher
The apt-proxy is used to get packages from a remote machine. The apt-cacher is used to create a local proxy for packages.
Solution 3:
I have used mod-proxy in apache to provide this service in the past. With proxy-cache, it seemed to work better than either of these solutions.
Squid with a cache may also do. There are the squid-deb-proxy package for caching, with squid-deb-proxy-client for cac autodiscovery of the cache.