With its anime robot-inspired logo and feature rich design, Phusion Passenger is clearly keen to present itself as the newest sleek and innovative tool for web hosting and development.
But is Phusion just another web server?
While at first glance the open-source Phusion Passenger software might look directly comparable with more familiar web server software like Apache and NGINX Passenger, it’s very important to distinguish Phusion as an application server as well as a standard web server.
What is a web server vs application server?
Like Apache and NGINX Passenger, Phusion Passenger can function as a typical web server.
Web servers operate by processing requests via HTTP and then delivering web content directly to web clients. But Phusion Passenger offers an extra level of support for other Ruby, Python, Node.js, and Meteor based applications that run in tandem behind the web server.
This is what makes Phusion Passenger a fully functional application server as well.
As an application server, Phusion Passenger takes requests from the web server in question and tells the applications behind it exactly what to do. It loads the code, keeps the app in memory, and communicates with the web server, which in turn responds to the user.
This additional layer can enable the application to run far more efficiently, especially if the app in question is written in a programming language not directly supported by the web server, which is why Phusion is such a great addition to any server.
From this aspect alone it's easy to see the benefits of using an application server like Phusion, and it’s a popular concept. The two big alternative app servers to Phusion are Puma and Unicorn, but Phusion Passenger remains the leading choice, largely thanks to its wide-ranging feature set, documentation, and community support.
Keeping your Ruby apps on track
In some cases, Phusion Passenger is also referred to as a ‘rails server’ due to the way it handles Ruby-based Rails applications.
Apache and NGINX Passenger are web servers with no built-in Ruby module, so they can’t run Ruby the same way they can run PHP or Perl. But the Phusion Protocol makes it possible for Ruby apps to talk seamlessly with HTTP framework.
Web applications built using the Ruby on Rails framework are, obviously, written in the Ruby language. This means that for most Ruby on Rails app developers, the Phusion protocol forms a vital part of their preferred setup and enables them to function properly.
Lone wolf or team player?
In its usual integrated mode, Phusion runs with Apache or NGINX Passenger as one complete unit, but it's also possible to run standalone Phusion together with Apache or NGINX Passenger using reverse proxies or its own built-in web server.
Phusion can actually be easier to start up in standalone mode, with only a minimum of tinkering required to get it up and running in a single convenient package. While this can be a viable setup for development, Phusion will usually sit behind either Apache or NGINX Passenger in a production environment.
However, the combination of Phusion Passenger with a dedicated web server does allow for more efficient handling of HTTP requests and I/O security, as well as improved performance, particularly when running multiple apps simultaneously, all of which are critical factors in a production environment.
If you're thinking of trying Phusion Passenger for yourself, its open-source software is available completely free form their website, but there is also a paid enterprise version offering premium features for more demanding users.
At Fasthosts, our CloudNX platform offers the ideal cloud hosting environment for any developer looking to integrate Phusion Passenger into their stack. With the ability to create a powerful cloud infrastructure with your own customised configurations, we offer 24/7 support to help you get set up and started.