Home Technical Articles Phusion Passenger Server Explained 

Phusion Passenger Server Explained 

by SupportPRO Admin
Phusion server

Phusion Passenger is a free web server and application server with support for Ruby, Python and Node.js. It is designed to integrate into the Apache HTTP Server or the Nginx web server, but also has a mode for running standalone without an external web server.

Phusion Passenger supports Unix-like operating systems, and is available as a gem package, as a tarball, or as native Linux packages.

Passenger and “Rails server”

The Ruby on Rails framework provides a built-in server tool, which can be accessed with the rails server command. The “rails server” is not an application server by itself, but just a small wrapper that launches your application in an application server. This is why people do not use “rails server” in production. They use an application server such as Passenger directly.

Passenger is an open source web application server. It handles HTTP requests, manages processes and resources, and enables administration, monitoring and problem diagnosis.

Passenger is very easy to use, makes deploying in production much easier and is scalable.

How Passenger fits in the stack

When you deploy your web app to production, there are all sorts of components involved. You may have heard of Unicorn, Puma, Nginx, Apache, and Capistrano. Passenger replaces some components while collaborating with other components.

In a typical production stack, Nginx or Apache is used as the web server, Passenger as an application server, and Capistrano as a release automation tool. Passenger integrates with Nginx or Apache and manages the application and its resources.

Passenger- application server-Capistrano-release automation tool

Security

Passenger protects your web apps from various malicious attacks like slow client attacks, common HTTP parser exploits, and privilege escalations.

Documentation

A tool is only as good as its users are able to wield it. Passenger comes with world-class documentation to allow you to fully leverage its features.

Optimization

Passenger was built with high performance and efficiency in mind. With Passenger’s zero-copy architecture, turbocaching and support for multiple concurrency models, you can count on Passenger to get the most out of your hardware.

Stability

Passenger auto-manages your apps’ processes, restarting them and itself if they ever crash. Passenger also keeps resource hogging apps in check, giving your web app maximum uptime.

Reliability

Passenger was battle-tested with some of the most demanding web apps for over a decade. This makes it one of the toughest app servers to date, currently powering over 650,000 web apps.

Polyglot

Deploy your Ruby, Node.js, Meteor and/or Python apps from one Passenger instance in seconds. You need not fiddle around with multiple app servers and proxies anymore.

Logs

Passenger prints its own logs not only to the terminal but also to a log file. During startup, Passenger tells you what log file is used. This is typically log/passenger.XXXX.log.

There are also the application logs, such as log/development.log and log/production.log. These logs are completely separate from Passenger’s own logs. If you use Rails, then Passenger will also print your application logs to the terminal, but it will not print them into Passenger’s log file.

Nginx and Apache

Nginx and Apache are web servers that enable HTTP transaction handling and serve static files. However, they are not Ruby application servers and cannot run Ruby applications directly. That is why Nginx and Apache are used in combination with an application server, such as Passenger.

Application servers make it possible for Ruby apps to speak HTTP. Ruby apps (and frameworks like Rails) can’t do that by themselves. On the other hand, application servers typically aren’t as good as Nginx and Apache at handling HTTP requests. Nginx and Apache are better at handling HTTP concurrency management, I/O security, connection timeouts, etc.  It is due to this reason that application servers are used in combination with Nginx or Apache in production environments.

If you require help, contact SupportPRO Server Admin

guy server checkup

Need help with your servers?

Contact Us today!

Leave a Comment

CONTACT US

Sales and Support

Phone: 1-(847) 607-6123
Fax: 1-(847)-620-0626
Sales: sales@supportpro.com
Support: clients@supportpro.com
Skype ID: sales_supportpro

Postal Address

1020 Milwaukee Ave, #245,
Deerfield, IL-60015
USA

©2022  SupportPRO.com. All Rights Reserved