Reverse/Server-Side Proxy Caching for Windows?
frooyo asks: "I'm an currently looking for a good reverse proxy caching solution (server-side caching) for the Windows platform. This would be used as a transparent proxy between the corporate website and the outside world. Products that I have seen available include: Microsoft ISA server, Squid for NT and some others. I'm not completely opposed to using a non-windows platform for this type of solution, but I would prefer a Windows solution. I need a product that handles middle-large numbers of current users (10-30) with easy on one server. Additionally features such as caching pools and easy handling of FTP connections (since this will be used as a 'transparent' proxy) would be a much needed benefit."
Being a relatively ancient open-source Unix program, it adheres religiously to standards, and will correctly use headers such as Expires and Cache-Control to maintain cache coherence; Squid will correctly cache anything with a Last-Modified header.
Additionally, it supports upstream commands allowing your web server to tell Squid to invalidate cache records when content changes; you can implement this easily in server-side languages such as PHP, Java or Python (Zope's caching machinery supports this transparently).
Both ISA Server and Squid do what you want?
What is it exactly that you are asking? Is there a feature you need that these don't provide? Would you like us to write a config file for you?
Please be specific enough for knowledgeable users to know what you are asking.
I read this ask slashdot as 'I need to do x, found y and z that does x.' Also if you're only going to have 10-30 users, why bother doing a reverse cache? If your web server can't handle 10-30 users, a cache isn't going to help much.
Can I get an eye poke?
Dog House Forum
More evidence to attest to this is calling 10-30 middle to large numbers. ?!? Mid to large for our systems is in teh several hundreds not 10-30. Well maybe for a microsoft product 10-30 is middle to large wouldnt know anymore havent used it in years. Maybe a P1 200 class machine with 256 mb of ram running FreeBSD and Squid is about right for this machine?
Depends on what the "web server" is; it might be expensive SQL stuff, for example. Or it might be a heavy-weight CMS thing; Plone's default skin gives me less than 10 hits/sec on a very fast SMP box, and the lack of speed is, amazingly, mostly in the templating system. This is a case where caching would help.
10-30 concurrent users I interpret as meaning 10-30 requests per second. To put it in perspective: 10 req/s is 864,000 req/day. 30 req/s is 2,592,000 req/day. If every page in your system is 30 KB in size, then 10 req/s is equivalent to a constant bandwidth usage of 300 KB/s.
If you want a Windows solution then ISA is the way to go.
It will handle reverse web proxying along with providing transparent caching etc.
It's also very very easy to set up.
If you want more specific into, try Thomas Shinder's site http://isaserver.org
My computer stopped working and when I phoned support they suggested changing something called a 'fuse' in my cable.
The plug says to use a 13A rated fuse. I went to the shop and it seems they have all sorts of these fuses. I was wondering if any Slashdotters had tried different fuses and what success they had?
Thanks.
A Dork Esq.
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Check out iChain from Novell, it's relatively cheap and very fast. It's a reverse proxy appliance.
It does much more that what you're looking for, but some of the multihoming functionality is incredibly handy.
The per user licensing only matters if you use it to authenticate users.
I use Apache's mod_proxy module for reverse proxying. It works very well, and if you have several upstream servers, you can use the very powerful mod_rewrite to map parts of the URL to different servers.
First to all to all that responded that 10-30 isn't much, the asker mentioned 10-30 _current_. I assume he (or she) meant concurrent. And that can, depending on what you mean by concurrent and by the type of website served be a resource eater for which reverse proxy be an excellent tool.m l Note that the advantage often is not caching but buffering.
For those that don't understand this I suggest to read http://perl.apache.org/docs/1.0/guide/strategy.ht
Furthermore, we use apache and mod_proxy for reverseproxy. It is a little more resource eating that squid, but it keeps server configuration nice and central since our sites are served by apache as well. I assume this will work nicely on Windows as well. Our company however uses only Linux (even on the desktops) so I cannot tell from experience how well this works using Windows.
---
Ok, now I need some help getting gcc to compile some stuff on my debian box. Let's see, which speed dial did I have Billy on again? Oops, that was Stevie.
I know, I'm a smart@ss who is probably being harsher on you than you deserve. The community loves helping others and sharing the knowledge. It was just the way in which you said you would prefer a M$ solution that really seemed insulting. As if a FREE solution wasn't inferior.
You have money, time, and rackspace to burn setting up a reverse-proxy for your webserver, but no resources to devote to your actual webserver? Beef up the webserver, upgrade IIS, team your NICs, do something to fix the problem, not the symptom.
I want to delete my account but Slashdot doesn't allow it.
Put yourself out and lash a few aging machines into a peered virtual cache/distributed front end using Squid.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Code for an HTTP proxy is easily googleable. FTP would be a little more effort, but once you understand the principles...
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
Try xCache - I've used it before and it's quite good: http://www.xcache.com/home/default.asp
Many Fortune 500 companies use it.
Yes, the article was meant to say concurrent users. And yes, the current website is driven by a large CMS where all pages are dynamic (all content resides in a database).
/. use a caching server? If not, why not?
So after some clearification, what are peoples experiences with ISA or Novell's Volera (which I have heard very good things about) and any other caching solution.
Does
I have to say, I've been using ISA for 2+ years now and am very familiar with its capabilities & performance.
ISA's proxying is great, but does cost $$$ on top of your Windows 2K licensing and Hardware. Here's the setup of every ISA box I've spec'd in teh last few months:
1. Dell GX50 Celeron 1GHz, 1GB RAM, 20GB 7.2k RPM HD, Adaptec 4-port NIC. About $900
2. Windows 2000 Server. About $800
3. MS ISA Server. About $1100
Total: about $2800
That said, it's expensive for use as "just a proxy". ISA offers much much more which is why I recommend using it in a more fully featured fashion. If you're planning on leveraging the Firewall, VPN, Secure-NAT, and PPTP Pass through capabilities at the same time, by all means, I can't recommend a better small/medium business security device.
(FWIW: ISA is the only commercial firewall I know that can do both PPTP and L2TP/IPSec in a NAT configuration with more than 1 connection at a time on the same external IP address - true that PIXs and similar ones can do PPTP through NAT, but you need a 1:1 mapping ratio for private to public IPs to do it. I've had over 150 private IPs set up simultaneous PPTPs through my ISA box on a single external IP, but I digress...)
ISA's proxying is suprisingly fully-featured. Want to scan all uploads & download for viruses? No problem, ISA's got a ton of plugins. Want to harden security on a single box instead of 10 individual web servers? No problem, apply all kinds of rules to the proxy service and block or allow things at the file or even mime-type level. Want to use NT/AD user certificates on Apache or non-IIS servers? No problem... with Feature Pack 1, ISA will provide authentication based on all these and "non-MS-ize" the auth data to your backend servers. Want redundancy? Just add another ISA server in array mode - 2 boxes, single config point, double the performance,
There's so many other ISA features to mention. I can't say enough good things about it. My only wish list item is better logging.
Novell BorderManager's cache servers are the fastest ones available. According to the cache server bake-off reports I've read, I believe BorderManager consistently wins.
However, last I looked, BorderManager's firewall doesn't live up to modern standards. It doesn't do statefull connection tracking, and it's probably only twice as secure as an NT/2000 box exposed to the Internet. Still, it's great at what it does, so if you're willing to spend the money, go with it and use it's cache servers. If you need greater security, put it behind another firewall, such as a properly configured Debian box, or an OpenBSD system.
Maybe a P1 200 class machine with 256 mb of ram running FreeBSD and Squid is about right for this machine?
:-)
At my kids school (a little under 400 people) I'm running squid on a P200 with *96MB* of RAM with absolutely no issues at all. The machine is mostly idle, and the load only goes up due to the snort and afick processes also running on the host
-- I speak only for myself.
Just use Squid for *nix. You can use any old box you have laying around. You don't even need an x-window-environment. You can do everything from the CLI. I use it for a 250 user network and it works splendidly. Squid=$0. Your favorite Linux distro. (Don't want to start a war, but look at Debian, easy to update/secure/install programs.)=$0. Old PC laying around =$0. So $3,000 vs. $0 and you would have to do the same amount of reading and studying up on both. $3,000 could buy an awful lot of better things.
I hate sigs.