Phusion Passenger 3.0.21 is a bug fix release which backports some fixes from the 4.0 series. It is the last release in the 3.0 series and is meant for people who are not yet able to upgrade to the 4.0 series at this time.

Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

Recent changes

Phusion Passenger is under constant maintenance and development. New features will be introduced in Phusion Passenger 4. In the mean time, the Phusion Passenger 3 branch receives bug fixes only.

Phusion Passenger also has an Enterprise version which comes with a wide array of additional features. With the released of the open source Phusion Passenger 3.0.19, Phusion Passenger Enterprise has also been updated at the same time. By buying Phusion Passenger Enterprise you will directly sponsor the development of the open source version.

Nginx security fix: do not display Nginx version when server_tokens are off.

Fixed compilation problems on some systems, such as Fedora 17.

Fixed Union Station compatibility with Rails 3.2 and other Union Station-related bugs.

How do I upgrade to 3.0.19?

Final

The open source Phusion Passenger is provided to the community for free. We also provide an Enterprise version which comes with a wide array of additional features. Development of the open source version is directly sponsored by Enterprise sales. If you like Phusion Passenger, or if you would like to use the Enterprise features, please consider buying one or more licenses. Thank you!

Phusion Passenger is regularly updated and we regularly release new and interesting products! We have many exciting things planned for the near future. Curious? Enter your email address and name below and we’ll keep you up to date.

Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.17. This is a bug fix release.

Phusion Passenger also has an Enterprise version which comes with a wide array of additional features. With the released of the open source Phusion Passenger 3.0.17, Phusion Passenger Enterprise has also been updated at the same time. By buying Phusion Passenger Enterprise you will directly sponsor the development of the open source version.

Versions 3.0.15 and 3.0.16 have been skipped because 3.0.15 only contained some minor documentation updates, and 3.0.16 contained a hot fix but was immediately followed by 3.0.17.

How do I upgrade to 3.0.17?

Final

The open source Phusion Passenger is provided to the community for free. We also provide an Enterprise version which comes with a wide array of additional features. Development of the open source version is directly sponsored by Enterprise sales. If you like Phusion Passenger, or if you would like to use the Enterprise features, please consider buying one or more licenses. Thank you!

Phusion Passenger is regularly updated and we regularly release new and interesting products! We have many exciting things planned for the near future. Curious? Enter your email address and name below and we’ll keep you up to date.

Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

Hi readers, thanks so much for your patience. In the past week since we had started announcing Phusion Passenger Enterprise (see Roadmap Preview 1, Preview 2 and Preview 3) we’ve received inquiries and fan mail alike. Some of you had questions and we had to keep you waiting. But today we are proud to release Phusion Passenger Enterprise to the world.

Just the beginning

The features we’ve announced so far are just the beginning. In the near future we shall be unveiling even more Phusion Passenger Enterprise features, some of which may surprise people. These features will be part of the Phusion Passenger Enterprise 4.0 release. The current release is 3.0.x, with 4.0 beta coming up in the near future, as you can see in our roadmap.

We’d love to hear your feedback on Phusion Passenger Enterprise. Please email us or leave a comment at Hacker News or in this blog.

Curious about what those new features are? Enter your email address and name and we’ll keep you up to date about all Phusion news.

Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

In Preview 1 and Preview 2 we introduced the upcoming Phusion Passenger Enterprise. This time we’ll uncover another few features.

Resource control

Web applicatons do not always behave correctly, whether it’s because of a bug in the web application or a problem in an external system such as the database. Phusion Passenger Enterprise provides the ability to limit various aspects of application processes’ resource usage.

Request time limiting

Phusion Passenger Enterprise can enforce a maxiumum time limit on a request. If the process is not done sending its response after that time, it is forcefully shut down with SIGKILL. This time limit can be configured on a per-request basis.

Memory usage limiting

Phusion Passenger Enterprise can enforce a maximum per-process memory usage. Unlike most memory limit enforcement tools, Phusion Passenger Enterprise measures memory usage by calculating the private dirty RSS. This is the best method to calculate the true memory usage of a process beacause it does not count shared memory.

Phusion Passenger Enterprise’s memory usage limiting is graceful. This means that it shuts down the process after it is done with all current requests, so that visitors do not get to see any errors.

Mechanisms such as vsize ulimit and rss ulimit are incorrect (they measure the wrong memory usage), buggy (rss ulimit does not work on Linux) or are not graceful (ulimit forcefully kills the process).

Stay tuned!

These resource control features make it extremely easy to keep your app processes in line with a flip of the switch. Furthermore, we’ve taken the opportunity to use non-traditional methods to measure memory usage and we try to impact visitors as least as possible even when enforcing resource limits.

The release is very soon now. We will be introducing an early bird pricing so be quick, because it won’t last forever. If you want to be among the first to grab an early bird license, fill in your email address below and we’ll keep you up to date!

Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance; it is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

In the last Preview, we mentioned putting “final touches on the launch”, and some of you may wonder what these final touches are. Code-wise Phusion Passenger Enterprise is as good as done, so these final touches cover mostly the website. We believe that a good website, good documentation and good support resources are essential for any good product. Thus, in this Preview, we shall unveil another two Phusion Passenger Enterprise features. We shall also unveil a small preview of the new website.

Live IRB and debugging console

You can attach an IRB console to any live, running Ruby application process managed by Phusion Passenger Enterprise. In this console you can inspect the application’s state using Ruby code, and modify it in a REPL manner. Just invoke this command:

passenger-irb <PID OF THE APP>

Phusion Passenger Enterprise also allows you to attach a ruby-debug console to any Phusion Passenger-managed Ruby process that has the debugging flag turned on. Ruby-debug normally requires a terminal and assumes that there’s only 1 process, assumptions which are obviously not compatible with Phusion Passenger’s multiprocess model. We’ve patched ruby-debug (and the Ruby 1.9 equivalent, the debugger gem) so that they properly support debugging over TCP sockets. Phusion Passenger Enterprise’s ruby-debug integration thus relies on these patches. ruby-debug already ships the patch; debugger will ship the patch in the next release.

Use it as follows:

passenger-irb --debugger <PID OF THE APP>

The following screencast demonstrates its usage.

Deployment error resistance

In the event that an updated application fails to start (because of a configuration error, syntax error in the source code, or whatever), the open source version of Phusion Passenger will shut down all application processes and display an error. Phusion Passenger Enterprise offers deployment error resistance: when it encounters an error it will report the error to the logging system and “freeze” the process list. It will neither start any new processes, nor shut down any existing processes, until the administrator has signaled that the problem has been solved. This ensures that the web application stays up and running as long as possible.

New website

The greatest care has been put into the new website when it comes to aesthetics and usability. We want to make sure that we’re doing it right. Below you see the design for just the front page. We have many more designs besides this one.

What you see here is actually the third design iteration. Because as with most good things, the first try is often not successful. In a future Preview we’ll show you the other two designs. For 3 weeks we’ve worked day and night on our designs, in-house. When it came to implementing it, the entire Phusion team was deployed on this endeavor. The process has been super intensive but also extremely rewarding, especially when the team has such a good synergy.

Technical specs

It’s made in Adobe Photoshop and Adobe Illustrator. The frontpage Photoshop file consists of 231 layers and is grid aligned using 960.gs’s 24-column grid system. We intend on making the website fully responsive, but many of you are anxiously waiting for the product so we’ve decided to defer responsiveness to a later iteration of the website. We’ve also tried to create and keep as many elements as possible in a vector format so that they can be easily scaled later on. This is especially important as retina displays become more and more widespread.

The website is implemented in Rails 3.2, running on Ruby 1.9.3 and served by Phusion Passenger Enterprise 4.0 pre-beta. We’re not afraid to eat our dogfood so we run production websites on unreleased Phusion Passenger code. On the frontend front, we’re using HTML 5, CSS 3 and CSS 3 transitions. No Internet Explorer 6 support, I believe most readers are well aware of the reasons why. We also use webfonts whenever we can, but unfortunately not all font licenses allow this, so occasionally we have to render fonts to images. Needless to say, this latter is quite a pain and we hope more and more font foundries will consider webfont licensing in the future.

Phusion Passenger is an Apache and Nginx module for deploying Ruby and Python web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since mid-2012, it aims to be the ultimate polyglot application server.

Many of you have been waiting for this moment. For some time now we’ve not only been talking about Phusion Passenger 3.2, but also about Phusion Passenger Enterprise. In this Roadmap Preview we’ll cover some features in Phusion Passenger Enterprise, what Phusion Passenger Enterprise exactly is, as well as something about Phusion Passenger 4.0 (previously 3.2). We will reveal more and more Enterprise features in the coming few days in preparation for its final launch, so stay tuned.

Features

Rolling restarts

Don’t temporarily freeze your website when restarting or deploying a new release. In the open source version of Phusion Passenger restarting an application involves shutting down all application processes and spawning new ones. Because starting a new process can take a long time (depending on the application), visitors may experience slow responses while the restart is in progress. With rolling restarts, Phusion Passenger Enterprise restarts your application processes in the background. Phusion Passenger replaces each existing application process one-by-one, without causing any slow responses for visitors.

Some other application servers also provide rolling restarts, but they often still require some manual process management. The rolling restart functionality of Phusion Passenger Enterprise is completely automatic and does not require any administrator setup or intervention. Other application servers may also use up to twice as much memory while restarting, because they first start multiple new application processes before shutting down the old ones. In contrast, Phusion Passenger Enterprise avoids double memory usage by restarting processes one-by-one.

Mass deployment

If you host a lot of different web applicatons on a single server, this feature will be useful to you. Point Phusion Passenger Enterprise to a directory, and it will automatically deploy all web applications in that directory. Each web application will be assigned it’s own virtual host, where the host name is the same as the web application directory name. If you add or remove a web application, Phusion Passenger will automatically pick that up too.

What is Phusion Passenger Enterprise?

Phusion Passenger Enterprise is a commercial, paid variant of Phusion Passenger and it contains a wide array of extra features that many production websites will find useful. Features not found in the open source version. In the coming few days we will announce more and more Enterprise features in preparation for the final launch.

We will charge for Phusion Passenger Enterprise on a yearly basis. Pricing and purchasing options will follow soon, and we can already tell you that there will be discount for startups as well as an early bird discount making it very affordable indeed. The open source version of Phusion Passenger will continue to be developed and maintained. Phusion Passenger Enterprise is based on the open source version and comes with more features. All bug fixes and features that go into the open source version will end up in the Enterprise version.

We intend on making a living out of this. By buying Phusion Passenger Enterprise, you will directly support Phusion Passenger’s continued development by allowing us to allocate more developer resources into this. This in turn allows us to iterate faster on features and bug fixes.

Phusion Passenger 4.0

Phusion Passenger 3.2 was previously the next version of Phusion Passenger with many internal improvements. It has switched to evented I/O core; the ApplicationPool and process spawning subsystems have been rewritten and much improved; and it has gained all kinds of stability features. Because of the many improvements, we deem it appropriate to bump the version number to 4.0. You can read more about what you can expect in Phusion Passenger 4.0 in the following past blog posts:

In the past few weeks, we’ve achieved major stability improvements in the 4.0 branch. We are now running it in production (we eat our own dogfood) and we will release an official beta soon.

Phusion Passenger Enterprise is developed and released in parallel to Phusion Passenger 4.0.

Roadmap

The roadmap is as follows. We will soon release Phusion Passenger Enterprise, of which the first release is based on Phusion Passenger 3.0.14. Shortly thereafter we will release the first beta of Phusion Passenger 4.0, and simultaneously the first beta of Phusion Passenger Enterprise 4.0.

Stay tuned!

Roadmap Preview 2 will follow soon. I know many of you are anxious about the release, but we are just putting the finishing touches on everything to make sure that the launch go well. In the next Preview, due in a few days, we shall reveal more features as well as parts of the new Phusion Passenger website.

You can easily stay up to date with our release progress! Just fill in your email address below and we’ll notify you.

Phusion Passenger is an Apache and Nginx module for deploying Ruby web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since version 3.0 it can also run standalone without an external web server, making it not only easier for first-time users but also ideal on development environments.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.14. This is a bug fix release.

[Apache] Fixed a long-standing mod_rewrite-related problem.

Some mod_rewrite rules would not work, but it depends on the exact mod_rewrite configuration so it would work for some people but not for others. Issue #563. Thanks a lot to cedricmaion for providing information on the nature of the bug and to peter.nash55 for providing a VM that allowed us to reproduce the problem.

[Nginx] Preferred Nginx version to 1.2.2.

The previously preferred version was 1.2.1.

Other changes

Cleared some confusing terminology in the documentation.
Fixed some Ruby 1.9 encoding problems.

How do I upgrade to 3.0.14?

Via a gem

First install the gem with the following command:

gem install passenger

If you’re using Phusion Passenger for Apache or for Nginx, then re-run the Apache or Nginx module installer, whichever is appropriate:

passenger-install-apache2-module
passenger-install-nginx-module

At the end the installer will tell you to paste a configuration snippet into your web server config file. Replace the old snippet that you already had with this new one.

Via Ubuntu packages

John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. You can find installation instructions on the Brightbox website.
(Note that John is currently packaging 3.0.14, so it might take a while before this release shows up in the apt repository.)

Via RedHat/CentOS packages

YUM repositories with RPMs are maintained by Erik Ogan and Stealthy Monkeys Consulting. Please note that Erik is currently packaging 3.0.14, so it might take a while before this release shows up in the yum repositories.

Step 1: install the release package

The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the main repository:

Phusion Passenger is an Apache and Nginx module for deploying Ruby web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since version 3.0 it can also run standalone without an external web server, making it not only easier for first-time users but also ideal on development environments.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.13. This is a bug fix release.

Via Ubuntu packages

John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. You can find installation instructions on the Brightbox website.
(Note that John is currently packaging 3.0.13, so it might take a while before this release shows up in the apt repository.)

Via RedHat/CentOS packages

YUM repositories with RPMs are maintained by Erik Ogan and Stealthy Monkeys Consulting. Please note that Erik is currently packaging 3.0.13, so it might take a while before this release shows up in the yum repositories.

Step 1: install the release package

The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the main repository:

Phusion Passenger is an Apache and Nginx module for deploying Ruby web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since version 3.0 it can also run standalone without an external web server, making it not only easier for first-time users but also ideal on development environments.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.12. This is a bug fix release.

[Apache] Support Apache 2.4. The event MPM is now also supported.

[Nginx] Preferred Nginx version upgraded to 1.0.15.

[Nginx] Preferred PCRE version upgraded to 8.30.

[Nginx] Fixed compatibility with Nginx < 1.0.10.

[Nginx] Nginx is now installed with http_gzip_static_module by default.

Via Ubuntu packages

John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. You can find installation instructions on the Brightbox website.
(Note that John is currently packaging 3.0.12, so it might take a while before this release shows up in the apt repository.)

Via RedHat/CentOS packages

YUM repositories with RPMs are maintained by Erik Ogan and Stealthy Monkeys Consulting. Please note that Erik is currently packaging 3.0.12, so it might take a while before this release shows up in the yum repositories.

Step 1: install the release package

The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the main repository:

“Phusion” and “Phusion Passenger” are registered trademarks of Phusion. “Rails”, “Ruby on Rails” and the Rails logo are registered trademarks of David Heinemeier Hansson. All other trademarks are property of their respective owners.