I didn’t consider using Passenger when it was first released because it only worked with Apache and I prefer nginx. But now Passenger works with nginx! This is great news. Nginx and Passenger make for simple high-performance Rack and Rails web application deployment. I still like thin. But the simplicity of deploying with Passenger makes it a better solution for my needs. I’ve created a second webfaction-rails-environment installation script that implements Passenger. It’s available at GitHub.
The one potential downside of nginx+Passenger on WebFaction is that the reported RSS is greater than with monit+nginx+thin. In actuality, nginx+Passenger uses far less physical memory (especially with Ruby Enterprise Edition) than any other solution. The reported RSS is higher because of multiple counting. Separate application instances share memory that doesn’t change. If memory usage is metered strictly on the basis of RSS, then you’re not getting your money’s worth of memory using Passenger. “Private Dirty RSS” is a more accurate measure of memory usage. The README of webfaction-rails-environment shows you how to determine it. The difference can be substantial.