I’m working on a Rails application and it is currently hosted on a shared hosting. However, it is getting a lot of features that requires reasonable processing and I’m thinking of move it to a VPS, clouded server.
I have no experience on server management, but, since it is a simple application, I’d like to manage it myself. Googling a bit, I’ve found a couple of setup options:
- Phusion Passenger + Apache. This seems to be the default option today.
- Phusion Passenger + Nginx. Nginx presents itself as lighter option to Apache, but the latter has much more modules and support.
- Mongrel + Apache. I don’t know what to think about Mongrel; the discussions I’ve found seem to be outdated, but there is a nice article about a cluster of Mongrels with Apache.
So what do you recommend? The application has a light traffic, but performs a lot of processing-intensive operations and serves only a few static files. Memory consumption is important, because on VPS they bill accordingly the memory you need. And, as I am a beginner, documentation and ease of configuration is crucial. It would be nice too if the server had some kind of Comet/server-pushing support; I’m planning to add it soon (I cannot stand the nasty idea of pooling).
Well, Nginx is really simple to configure and I believe that Phusion Passenger comes with an installation option that downloads Nginx for you. There is also a http push module in development in case you would need to use comet. Memory wise Nginx comes with a lower memory footprint out of the box than Apache. You might also want to install Ruby Enterprise Edition to further decrease the memory footprint of your application.