Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practices for new Rails deployments on Linux?

I've used straight Mongrel, I've used Mongrel clusters behind Apache, I've looked at Thin, and I'm becoming very intrigued by Passenger. I've looked at Nginx, too. I've looked at MRI, Ruby Enterprise Edition, Rubinius, and JRuby. There are a lot of options, each claiming to be the new holy grail.

What is the best option out there for a brand new, fully up-to-date deployment? The only assumptions are this:

  • The app is Rails 2.2 based. (I know 2.2 isn't fully released yet, but neither is this deployment.)
  • The server is Linux-based. Probably Ubuntu Hardy, but really, whatever works best in this case.
  • Rails will need to be fully functional and probably talk to a MySQL database.
  • Everything else is negotiable.

Given these especially broad constraints, which combination of software will yield the best result, in terms of concurrency and low overhead?

I'm leaning toward Apache with the "worker" mpm and Passenger + Ruby Enterprise Edition, simply because it offers immediate stability and simplicity of setup and maintenance.

Am I likely to be particularly better off with another option?

like image 737
Jim Puls Avatar asked Nov 11 '08 06:11

Jim Puls


1 Answers

I switched from Mongrel Cluster to Passenger two weeks ago (Debian Linux Server). I didn't look back for a second. Passenger is probably the easiest way to get your new server up and running. Performance and reliability are reasonable too.

Personally, I like to spend my time working on exciting new Rails projects rather than dealing with deployment issues - Passenger enables me to do exactly that. However, Mongrel or something else may still be preferable if you have some kind special requirements (doesn't apply for most products).

like image 133
Christoph Schiessl Avatar answered Oct 01 '22 19:10

Christoph Schiessl