Search code examples
ruby-on-railsarchitecturewebserverapplication-serverdatabase-server

Recommended server layout/architecture for Rails application


What is the recommended server layout for a production Rails application that is expected to receive medium (not heavy, but not light either) traffic? I'm thinking of a setup running Apache and Passenger (mod_rails). How many application servers, web servers, and database servers make sense? How should they be set up to provide redundancy, failover, reliability, etc.?

I know this is a broad question that depends on a lot of factors, but I'm just looking for general advice and suggestions for how this should be approached.


Solution

  • Passenger and Apache or Nginx are great starting points.

    The rest basically depends on your budget and requirements and are essentially impossible to give a canned response on.

    A single server is a good place to start, and you will probably be surprised by the volume of traffic a single decently spec'd box with the right tuning can turn over.

    If you have budget for two servers, a splitting the web server and database is the next logical step.