Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently building an application that will handle quite a lot of file uploads (images, so a few MB each). It'll also be handling mostly JSON requests on the frontend, behind a Javascript application.

Which Ruby server would be my best bet for maintaining good performance? Passenger, Unicorn, Rainbows, or Thin?

share|improve this question
Instead of allowing your Ruby applications to handle the file uploads, take a look at the NGINX file upload module (, let NGINX handle the uploads then your Ruby application just has to worry about moving the file to the right place – Smudge Nov 24 '11 at 9:00

You should always place an reverse proxy like Apache/nginx in front of Ruby application server. And use that reverse proxy as an load balancer to distribute request evenly to Ruby servers cluster.

If you only use the Ruby server as a service layer, replying json datas. You can use Thin, because you can build server in asynchronous pattern(reactor) which is more scalable.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.