One click clustered and autoscaled deployment with phusion passenger

I’ve posted (multiple times) about phusion passenger before and it is clear how big an affection I have towards that product.

They’ve now created a very extensive documentation, in the form of walkthroughs that guide you from zero to deployment in a very easy to follow manner.

And the last step of the walkthrough is about one click deployment of your app updates.

https://www.phusionpassenger.com/library/deploy/nginx/automating_app_updates/meteor/

You might want to check out https://www.phusionpassenger.com/library/walkthroughs/start/meteor.html for the meteor walkthrough.

6 Likes

I use phusion passenger on my MacPro for development, and it works real well. One thing I noticed as of late is the following error message

WebSocket connection to 'ws://url/sockjs/363/gbi0lxnx/websocket' failed: Error during WebSocket handshake: 'Connection' header is missing

have you seen this and/or do you know how to fix that?

Nope, I’m using it only for QA and production environments. Furthermore, I’m using the nginx integration mode, not the standalone mode. Perhaps that’s a reason I’ve not seen such errors.

You should post that issue on github, though. They are very attentive.

I am using the apache2 integration mode, was easiest on OSX. Will see what Github yields

If you need WebSockets, for the time being we recommend using Nginx, or using Passenger Standalone behind Apache + mod_proxy

Bummer

Hmm, what’s holding you back from using these? I’m not on a mac, so can’t elaborate, but I do wonder.

Just time and being (still) unfamiliar with nginx

Take a look at the new documentation. It is just great. It is in the from of a walkthrough broken into task units and at the beginning of each (relevant) unit, you make choices like apache/standalone/nginx or ubuntu/macos/arch/etc

You’ll specifically be interested in reading https://www.phusionpassenger.com/library/walkthroughs/deploy/meteor/ownserver/nginx/oss/osx/install_passenger.html but it is a mid-step so suggest you start at the beginning here https://www.phusionpassenger.com/library/

Yeah, I already have several apps deployed. The error started with the latest version of passenger.

But passenger is designed to “cluster” processes on a single server right? It can’t cluster you app on multiple machines, or can it? Or how would you do it, with passenger?

Take a look at https://www.phusionpassenger.com/library/deploy/nginx/ where you have multiple options to scale to multiple servers. You can also automate that with a tool of your choice, or employ your preferred deployment options, endpoints being passenger. There are literally tons of options there.

But what one must definitely not overlook is passenger’s main strengh being process orchestration and optimization. It drastically increases server density allowing you to mix and match technologies as you require them.

Ok, thanks, I will take a look. Is there maybe someone who already did it with meteor and maybe some comparisons to meteorhacks-cluster packages together with mup, would be really interesting. thx

I’m not very familiar with mup or cluster, but if you were to compare, you’d be better of checknig out mupx which is the “next” version of mup with clustering support as well as service discovery.

It still uses the underlying node environment, though.

Passenger on the other hand shines in process management. That implies optimization and recovery which are very valueable to scaling.