Recommended reading material
- Users guide
The users guide, also included in the Passenger gem and source tarball,
describes among other things:
- Installation prerequisites
- Solutions for troubleshooting
- Our editable Wiki allows users to contribute useful documentation and other information.
- Developer documentation
- We’ve written extensive developer documentation so any anyone may contribute to Passenger or peer-review our code. Please check the Development page.
Frequently Asked Questions (or Frequently Given Answers)
- I have a problem that's not listed on this FAQ
- Please read the troubleshooting section of the Users Guide (Apache/Nginx/Standalone). If that doesn't help, please go to the Support page.
- I found a bug, how do I report it?
- Please report it at our issue tracker.
- How is performance?
According to our tests, Phusion Passenger is a bit faster than Mongrel, and seems to be on par with Thin:
- diffuse.it (Phusion Passenger is shown to be faster than Mongrel)
- Arie's blog (Phusion Passenger is shown to be as fast as Mongrel)
Though we have to say that absolute speed is not our goal. Our primary goals are ease of use, low maintenance and high stability. Of course, we do strive for sufficient performance, and we think that Phusion Passenger is sufficiently fast.
- Does it support other Ruby frameworks (Merb, Camping, etc.)?
- Yes, via Rack.
- Why not mod_ruby?
- For one, look at its website. Last release was from 2006. We’re not sure whether it’s still maintained anymore.
- Nobody (or almost nobody) uses it in production. This fact alone says a lot.
The Rails wiki
page for mod_ruby lists a pretty bad limitation:
“mod_ruby uses a shared interpreter per Apache process, which means that multiple Rails applications on the same Apache setup with mod_ruby would share the framework classes. This doesn't work well with the Rails model of using class-level configuration attributes, so it’s considered unsafe to use mod_ruby and Rails with more than one application running per Apache setup, because different applications may start sharing the classes.”
- Is it stable?
We’ve done a lot of stress testing. So far we’ve been unable to make Phusion Passenger crash, even when under high load (e.g. ab -n 10000 -c 100).
Also, we've performed some robustness tests as well, and you can read our findings here.
The codebase has also been extensively tested with tools such as Valgrind in order to ensure that there are no memory corruption bugs.
- What happens if a single Rails app crashes? Will it take Apache/Nginx down as well?
- If a single Rails app crashes, Apache/Nginx is completely unaffected. Said Rails application will be restarted next time its domain is accessed, as if nothing ever happened. Of course, the error will be logged so that a system administrator or developer can figure out what went wrong.
- Does it support page caching? Are static assets accelerated?
Page caching is fully supported, without the need to configure mod_rewrite.
Static assets are accelerated, i.e. they are served directly by the web server and do not go through the Rails stack. This of course implies that page caching is accelerated as well.