Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Looking for a caching reverse proxy that can do the following: 1. be installed at satellite locations to take load off central content server 2. cache 5-10 gb of static img/swf assets from origin server & detect media updates 3. NO browser reconfiguration needed (no proxy setting tweaks) 3. support pooling or load balancing (nice to have). 4. allows initial seeding of assets from local media (nice to have).

restrictions: 1. cross platform for windows & Mac. 2. fairly easy to setup/maintain and must run on mediocre hardware. 3. license should allow commercial use

My first thoughts were: find a solution written entirely in Java or other portable language OR write my own minimal solution in Java OR create a VM image of Squid/Traffic Server/Nginx etc. running on Linux.

Haven't found a good package yet and I'm worried that using a VM might be too slow. This isn't my area of expertise so I hope there are some good ideas out there.

share|improve this question
Thanks for the help. I did try Varnish and it's a great package. But after realizing how simple it is to use mod_cache and mod_proxy with Apache, at the moment I'm leaning toward it as a solution that can run on Windows/Mac natively. (for some reason I had been under the impression there was a lot of finagling necessary to get those working under Windows but that does NOT seem to be the case anymore) – Eric M Aug 30 '10 at 16:13
up vote 0 down vote accepted

have you considered apache httpd with mod_proxy and mod_cache?

share|improve this answer

Varnish - caching is controllable by rules on the varnish server in cooperation with headers from the source servers.

Load balancing - something like haproxy should do the trick, not sure if varnish is good at this or not. Load balancing and caching are two different functions - keep them separate if you can.

As for detecting changes and pushing them out - that's more of an application design issue. If you set your cache timeouts (at all levels, so your reverse proxies as well as client browsers behave coherently) then new content should be picked up appropriately.

For bulk loading new content ,you could simply have something hit the proxies up for hte content and have them pre-load it.

If you want to monitor for changes.... not entirely sure on that one- but if Varnish can't do it on it's own, it's a simple enough script to write.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.