Nginx and Passenger
I planned to setup an Nginx / Passenger install to run a Rack application. A Puppet master actually. I’m setting this up for production usage for a few thousand clients, so Puppet’s built in web server is right out. It also gave me an oppertunity to learn Nginx which I’ve been meaning to look at for some time now.
I repeat, I’m setting this up for production. As I was figuring out how to get everything setup I quickly became frustrated with so many sets of instructions to gem install this and passenger-install that. These tools are great for setting up a development environment, especially as non-root. But, frankly, I want RPMs. I want a completely reproducible and automated configuration. (Why else would I be installing Puppet?) In fact, once I’m happy with the configuration I will reproduce it on a second server to have a redundant, load-balanced pair.
Fortunately, the folks at Phusion Passenger really want people to use their stuff. Easily. In development and production environments. They support and document many ways to get Passenger installed. With an extra Yum repository I have complete automation to setup a Rack environment.
I found an excellent blog post about configuring Nginx / Passenger to work with Puppet. I skipped all the gem install and compiling and started with “Create rack directory structure” about half way into the post. Very handy.