0

I am trying to figure out the optimal server stack for running Rails.

As of now, nginx + unicorn seems to be the best approach. However, some folks have suggested running the REE interpreter instead of Ruby plain.

Would nginx + unicorn + REE be the most powerful combination, or will plain interpreter suffice?

Miko
  • 1,709
  • 4
  • 22
  • 28

2 Answers2

1

It is difficult to answer your question without more data.

I will say, the easiest way to run rails apps is with Passenger. Unless you are running a really popular rails application that is having scalability problems the easiest path is best path.

Passenger is drop dead easy to administer.

The optimal server stack is the stack that does what you want and requires the least thinking and hand holding.

If you really do have issues of scale, then you need to hire an admin that knows what he or she is doing.

Nathan Powell
  • 579
  • 2
  • 6
  • Passenger is often laughed at in #nginx. It seems to pollute the server block space and generally be a horrible Nginx module. So I'm not so sure it's the best choice when using Nginx. Haven't tried it out, though. – Martin Fjordvald Jun 06 '10 at 22:25
  • Yeah, I would use it with Apache. With the caveats I gave earlier. – Nathan Powell Jun 06 '10 at 23:37
  • Martin: that's the first time I hear it. True, Phusion Passenger isn't your traditional Nginx module, but our design goal of being completely user friendly flies in the face of how Nginx works. You got more info about this? – Hongli Lai Oct 01 '10 at 12:11
  • Laughed at was a bad word choice, more like frowned upon. It's invasive in the way it injects itself into the configuration file. You specify passenger_enabled on for the server block disregarding the fact that nginx has multiple scopes such as location. It would be nice if Passenger would not basically rape the overall configuration style of Nginx and use passenger_pass like fastcgi uses fastcgi_pass, like HTTP uses proxy_pass, uwsgi uses uwsgi_pass etc. I'm sure you get the point by now. – Martin Fjordvald Oct 01 '10 at 12:24
  • I talked with Martin F on IRC about his concerns on Phusion Passenger. Turns out the concerns are misunderstandings. For example the claim that Phusion Passenger invasively injects itself into the config file is false; we hook into the configuration system just like any other module does (so one *can* customize passenger_enabled on a per-location basis), which I explained on IRC. If anybody else has concerns about how Phusion Passenger integrates into Nginx, please contact the Phusion Passenger support forum for more information. – Hongli Lai Oct 01 '10 at 12:38
1

Yes, you can easily use REE. It offers better garbage collection and I've successfully used it in production under nginx + unicorn + REE. Just be sure to reinstall the unicorn executeables so that they use REE and not the default ruby library.

The standard MRI interpreter would also suffice.

Caleb
  • 11
  • 1