This week's book giveaway is in the Flex forum. We're giving away four copies of Flex 4 in Action and have Tariq Ahmed, Dan Orlando, John C. Bland II & Joel Hooks on-line! See this thread for details.
Since Ruby is interpreted, you don't need an app server at all to run Ruby scripts. However, if you are building web-applications - you can go with:
Mongrel - the trusted standby
Glassfish - If you want to deploy onto the JVM
Webrick - For development it isn't a bad choice.
Cerise - follows J2EE patterns
That said, Ruby can fit into both Web and App Servers? What if in case of application container specific stuff is packed into a Ruby based web application? Something similar to Java EE applications, we should go for an App Server then?
I think that is implicit that if you deploy on the JVM you need to use JRuby not Ruby.
I will use Tomcat 6. I am not sure if I will develop with Ruby or JRuby, and at the time of the deployment I could switch from a Ruby project to a JRuby one only by copying the files.
As mentioned by others already, you can deploy Ruby-based web applications on both a "native" Ruby platform or on the JVM.
For the former, the "classic" infrastructure was also mentioned already (Apache + Mongrel) but I'd like to add to that list a couple of web servers that seem to be popular: Thin, Nginx and Lighttpd. In addition to these, Phusion Passenger (an Apache module) has been gaining popularity.
On the JVM with JRuby, I'd probably go for Jetty rather than Glassfish. The main advantages of Jetty compared to Glassfish are that Jetty's a proven web container with good performance and Jetty can be easily embedded into your Java process, making it easy to write integration tests.
This message was edited 1 time. Last update was at by Lasse Koskela
Well, I touched base with a friend of mine who was trying to scale out a simple rails app, and test with something like 1000 concurrent users. Amazon offers a free 50/pay 50+ concurrent user test platform that he uses to get the appropriate count, but he was trying to get gzip compression and far-future expires headers set through Apache... and having a heck of a time.
Instead, he upgraded on his host (hostingRails), and intalled Nginx. Now, he's a pretty savvy Unix guy so keep that in mind. He said that his install, config, use of Nginx was fantastic. Not only did it run extremely fast compared to Apache... but he said most of the performance tweaks he was going for were already setup correctly. He's singing the praises of Nginx, and he's definitely colored me to take a better look.
Good suggestion Lasse!
This message was edited 1 time. Last update was at by Michael Sullivan