<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ruby breakfast &#187; Rack</title>
	<atom:link href="http://emilientaque.fr/category/rack/feed/" rel="self" type="application/rss+xml" />
	<link>http://emilientaque.fr</link>
	<description>Technical tricks from a freelance Ruby &#38; Rails developper living in Nantes, France.</description>
	<lastBuildDate>Thu, 28 Jan 2010 09:32:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ruby app servers : what&#8217;s hot ?</title>
		<link>http://emilientaque.fr/2009/12/ruby-app-servers-whats-hot/</link>
		<comments>http://emilientaque.fr/2009/12/ruby-app-servers-whats-hot/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 21:45:41 +0000</pubDate>
		<dc:creator>Emilien Taque</dc:creator>
				<category><![CDATA[Rack]]></category>
		<category><![CDATA[Servers]]></category>

		<guid isPermaLink="false">http://emilientaque.fr/?p=23</guid>
		<description><![CDATA[So you&#8217;ve got a fresh new Rails app to deploy and you&#8217;re wondering which Ruby app server to use.
The old school way : a bunch of single process workers monitored (by Monit or God) and reverse proxied by (usually) Nginx. A little old-fashioned because it needs a serious monitoring configuration in order to deal with [...]]]></description>
			<content:encoded><![CDATA[<p>So you&#8217;ve got a fresh new Rails app to deploy and you&#8217;re wondering which Ruby app server to use.</p>
<p><strong>The old school way</strong> : a bunch of single process workers monitored (by <a href="http://mmonit.com/monit/">Monit</a> or <a href="http://god.rubyforge.org/">God</a>) and reverse proxied by (usually) <a href="http://wiki.nginx.org/Main">Nginx</a>. A little old-fashioned because it needs a serious monitoring configuration in order to deal with memory bloats, long actions, deployments, load balancing&#8230;</p>
<p><strong>The simple way</strong> : <a href="http://www.modrails.com/">Phusion Passenger</a> (aka mod_rails). If you&#8217;re sticked with PHP apps on your server, or basically if you prefer Apache, this is the best solution : like adding &#8220;PassengerEnabled On&#8221; into your virtual host declaration. It works out of the box without having to deal with worker pools.</p>
<p><strong>My</strong> <strong>personal preference</strong> goes to the Nginx version of Passenger. Nginx is a memory-saving, stable and fast web server. The install is dead simple if you let Passenger compile itself a fresh new Nginx instance. You got the best of both worlds : performance (Nginx) and simplicity (Passenger).</p>
<p>I&#8217;m looking forward to Passenger 3, teased by some of <a href="http://twitter.com/ninh">Ninh Bui&#8217;s tweets</a> : awesomeness and performances&#8230; Can&#8217;t wait!</p>
<p><strong>An alternative</strong>, fresh but unproven server : <a href="http://webroar.in/">WebROaR</a> is an all-in-one web+app server introduced as the most performant solution by the authors (&#8220;<a href="http://webroar.in/blog/2009/11/25/comparison-of-rails-deployment-stacks-2">5 to 55% faster than other deployment stacks</a>&#8220;). I feel a mistrust from the Rails community, maybe because it was released in the middle nowhere, but you should have a look at it.</p>
<p><a href="http://unicorn.bogomips.org/">Unicorn</a> is a fast server for Rack-based applications, based on Mongrel and strongly inspired by the Unix <a href="http://unicorn.bogomips.org/PHILOSOPHY.html">philosophy</a> : do one thing but do it well. It needs to rely on a buffered reverse proxy (Nginx) to deal with slow requests. Used by the Github folks <a href="http://github.com/blog/517-unicorn">as described here</a>.</p>
<p>JRuby highlights enterprise perspectives : you can now deploy your Rails app on JEE app servers such as Glassfish.</p>
<p>In short, for general purposes my preference goes to Passenger for Nginx. Easy install, small footprint, fair performance : don&#8217;t need more. I would consider using Unicorn for high performance context.</p>
]]></content:encoded>
			<wfw:commentRss>http://emilientaque.fr/2009/12/ruby-app-servers-whats-hot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
