Phusion Passenger: a web application server
With its anime robot-inspired logo, Phusion Passenger is keen to present itself as a sleek, innovative tool for web hosting and development. But is it just another web server?
While at first glance the open-source Passenger software is directly comparable with Apache and NGINX, it’s important to distinguish it as an application server as well as a standard web server.
Web server vs application server
Like Apache and NGINX, Passenger can function as a web server, processing requests via HTTP and delivering web content to clients. But Passenger offers an extra level of support for Ruby, Python, Node.js and Meteor applications running behind the web server.
As an application server, Passenger takes requests from the web server and tells the application what to do. It loads 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 effectively, especially if the app in question is written in a programming language not directly supported by the web server.
It’s easy to see the benefits of an application server, and it’s a popular concept. The two big alternative app servers are Puma and Unicorn, but Passenger is the leading choice, largely thanks to its wide-ranging feature set, documentation and community support.
Keep your Ruby apps on track
Passenger is also referred to as a ‘rails server’ due to the way it handles Ruby on Rails applications. Apache and NGINX 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 Passenger makes it possible for Ruby apps to talk to HTTP.
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, Passenger forms a vital part of their preferred setup.
Lone wolf or team player?
While Passenger is designed to work in conjunction with Apache or NGINX, it can also run in standalone mode using its own built-in web server.
Passenger can 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, Passenger will usually sit behind either Apache or NGINX in a production environment.
The combination of Passenger with a dedicated web server allows more efficient handling of HTTP requests and I/O security, as well as improved performance, particularly when running multiple apps simultaneously – all critical factors in production.
In integrated mode, Passenger runs with Apache or NGINX as one complete unit, but it’s also possible to run standalone Passenger together with Apache or NGINX using reverse proxies.
Thinking of trying Passenger yourself? As open-source software, it’s available for free, with a paid enterprise version offering premium features for more demanding users. And CloudNX offers the ideal platform for any developer looking to integrate Passenger into their stack, with the ability to create a powerful cloud infrastructure with your own customised configurations.