Leon Rosenberg wrote:
I'm sorry, I can't shut up my mouth on this, but you are telling myths :-)

And anyway, you just all forget this Java nonsense, and use Perl, as Real Programmers do.

That's just kidding of course, but let's keep a sense of perspective.

If you just want to run jsp pages and java servlets, then you need Tomcat (or another servlet engine), and there is no reason to add an Apache httpd in front. It would just complicate and slow down things.

If you need to serve some static content in addition to running your jsp pages and servlets, then there is still no need to put an Apache httpd in front of Tomcat, it can do that fine too by itself.

If you need several Tomcats to take the load, and you need to balance the calls to them, then you need a load-balancer in front; whether you want to use Apache httpd for that, or some other device/software is dependent on other factors. And if you want to use Apache, you can still choose between mod_proxy_http, mod_proxy_ajp or mod_jk.

If you do not need to run jsp pages and servlets, then you don't need Tomcat at all, and you'll be better off with Apache httpd alone.

If you need to run PHP or Perl or other non-Java applications, then you need Apache httpd, because Tomcat can't do that with anywhere near the same kind of speed and flexibility.

Now apart from the ideal clear-cut cases above, in the real world there are many cases where what you need to do is a mixture of all that, and that's where an Apache httpd/Tomcat combination may be the best choice. And that's also where the versatility of Apache httpd comes into play, a versatility which Tomcat does not match and probably never will, because the purpose of each is different.

Where Tomcat is designed to be a Java servlet engine, Apache httpd is designed for being a "swiss-army-knife" webserver. And it is free too (contrary to a hardware load-balancer). As much as Tomcat can also serve static content (and in simple cases do it well and efficiently), Apache httpd can do everything that Tomcat can do (except running Java applications). And then it can do a lot of extra things that Tomcat cannot, and it can do it almost out of the box, with a configuration which does not require being a Java expert. And it is used by about 50% of all websites on the WWW, for a total of some 100 Million. So it must be doing something right.

And not everyone can afford a server farm.

The point is, Apache httpd /can/ be a front-end to Tomcat, forwarding what needs to be and serving the rest either locally or by proxying it somehere else, do the authentication on behalf of itself and of Tomcat with just about any back-end imaginable, balancing between several back-end Tomcats, modifying requests to Tomcat on-the-fly and modifying Tomcat's responses if need be also, cache responses, negotiate content, track user activity and whatnot, and that is all just with the standard modules available directly within the standard Apache distribution.

Tomcat cannot do the same for Apache. And it does not want to do it, because its focus is on being a good java servlet server, not on being a universal webserver like Apache httpd wants to be.

Now maybe in another 10 years, Tomcat will be able to do all these things too. But by then maybe Java will be out of fashion (remember Pascal, PL/1, RPG ?) and all decent webservers will be written in Erlang.






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to