I've seen a lot of web server setups where Apache is in front of another web server. The most prominent examples of these are the Java web servers, e.g. Glassfish, Tomcat, etc. What is the point of this? I realize the point of putting Apache in front of, say, a Mongrel cluster is load balancing, but what about other servers? What are the reasons for doing this?
Sasha Chedygov's questions
Background: I'm developing a Ruby web application, and have decided to switch to JRuby for several reasons that I'm not going to mention here. I have experience with servers such as Apache and Lighttpd, but I have no experience with Java or deploying Java-based web applications.
What would be the best setup for a JRuby web application in terms of server software? (And whatever else I might need.) What server choices do I have? What's different between setting up a Java-based server and, say, Apache? In other words, how do I get started?
Thanks for helping out a newbie. :)
PS: I don't know if it makes a difference since Java is cross-platform, but my development machine runs Vista, so it would be great if I could also use the same setup on Windows for development.