Phusion Passenger turns Apache and Nginx into a full-featured application server for Ruby and Python web apps. 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.
Today we are pleased to announce Release Candidate 4 of Phusion Passenger 4.0. Last week we said that the open source release of Release Candidate 1 will be out today. However because of the helpful feedback and bug reports we’ve received from Enterprise customers, we’ve decided to push out these bug fixes to the open source version earlier. Release Candidate 3 was only available for Enterprise customers in order to test bug fixes, so it hasn’t been announced publicly.
The 4.x series is a huge improvement over the 3.x series: during the development of 4.0, we’ve introduced a myriad of changes which we’ve covered in past beta preview articles:
- Support for multiple Ruby versions, support for Python WSGI, multithreading, evented core similar to Nginx and Node.js, real-time response buffering, improved zero-copy architecture, better error diagnostics.
- JRuby and Rubinius support.
- Out-of-Band Work.
- Support for the Rack socket hijacking API
- Improved stability and test suite.
Changes in 4.0 RC 3 and RC 4
The focus of RC 3 and RC 4 have yet again been on improving stability. We’ve closed over 50 issues in our issue tracker.
The most important changes in RC 3 and RC 4 are as follows:
- Fixed Rake autodetection.
- Fixed compilation on systems where /tmp is mounted noexec.
- Fixed some memory corruption bugs.
- Phusion Passenger Standalone now sets
underscores_in_headers. Fixes issue #708.
- Fixed some process spawning compatibility problems, as reported in issue #842.
- The Python WSGI loader now correctly shuts down client sockets even when there are child processes that keep the socket open.
- A new configuration option
passenger_python(Nginx) has been added so that users can customize the Python interpreter on a per-application basis. Fixes issue #852.
- The Apache module now supports file uploads larger than 2 GB when on 32-bit systems. Fixes issue #838.
- The Nginx version now supports the
- Environment variables set in the Nginx configuration file (through the
envconfig option) are now correctly passed to all application processes. Fixes issue #371.
- Fixed support for RVM mixed mode installations. Fixes issue #828.
- Phusion Passenger now outputs the Date HTTP header in case the application didn’t already do that (and was violating the HTTP spec). Fixes issue #485.
- Phusion Passenger now checks whether /dev/urandom isn’t broken. Fixes issue #516.
- Improved debugging messages.
Installing and testing 4.0.0 Release Candidate 4
Open source users can install the open source version of 4.0 RC 4 with the following commands:
gem install passenger --pre passenger-install-apache2-module passenger-install-nginx-module
You can also download the tarball at Google Code.
In-depth installation and upgrade instructions can be found in the Installation section of the documentation. The documentation has been updated to cover 4.0 changes, including Enterprise features. You can view them online here:
We are excited about the final release. You can help us by testing RC 4 and reporting any bugs. Please submit bug reports to our bug tracker.