<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Speed up your Apache/Passenger Rails app in 2min</title>
	<atom:link href="http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/feed/" rel="self" type="application/rss+xml" />
	<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/</link>
	<description></description>
	<lastBuildDate>Tue, 07 Sep 2010 17:45:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Eliot Sykes</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-73136</link>
		<dc:creator>Eliot Sykes</dc:creator>
		<pubDate>Thu, 06 May 2010 15:50:03 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-73136</guid>
		<description>Using query strings to manage cached assets is unreliable - some caching proxies ignore query strings. Fingerprinted file names is a better solution and recommended by Google. There&#039;s an AssetFingerprint plugin to help with this which I&#039;m shamelessly plugging:

http://blog.eliotsykes.com/2010/05/06/why-rails-asset-caching-is-broken/</description>
		<content:encoded><![CDATA[<p>Using query strings to manage cached assets is unreliable &#8211; some caching proxies ignore query strings. Fingerprinted file names is a better solution and recommended by Google. There&#8217;s an AssetFingerprint plugin to help with this which I&#8217;m shamelessly plugging:</p>
<p><a href="http://blog.eliotsykes.com/2010/05/06/why-rails-asset-caching-is-broken/" rel="nofollow">http://blog.eliotsykes.com/2010/05/06/why-rails-asset-caching-is-broken/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-69028</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Wed, 30 Sep 2009 08:43:14 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-69028</guid>
		<description>I think you&#039;re right Mike, FilesMatch doesn&#039;t match against the query string.

I&#039;ve been using ERB to render my stylesheets so that they do include time stamps,  I wrote about it here: http://deaddeadgood.com/2009/9/28/far-future-expires-headers-for-css-images-in-rails</description>
		<content:encoded><![CDATA[<p>I think you&#8217;re right Mike, FilesMatch doesn&#8217;t match against the query string.</p>
<p>I&#8217;ve been using ERB to render my stylesheets so that they do include time stamps,  I wrote about it here: <a href="http://deaddeadgood.com/2009/9/28/far-future-expires-headers-for-css-images-in-rails" rel="nofollow">http://deaddeadgood.com/2009/9/28/far-future-expires-headers-for-css-images-in-rails</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: almost effortless &#187; Passenger with nginx on Mac OS X</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-69003</link>
		<dc:creator>almost effortless &#187; Passenger with nginx on Mac OS X</dc:creator>
		<pubDate>Wed, 16 Sep 2009 22:22:47 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-69003</guid>
		<description>[...] two configuartion tweeks are, I believe, the rough equivalent of the technique previously discussed on this blog for [...]</description>
		<content:encoded><![CDATA[<p>[...] two configuartion tweeks are, I believe, the rough equivalent of the technique previously discussed on this blog for [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68957</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Tue, 01 Sep 2009 16:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68957</guid>
		<description>Oops, comment editor swallowed my example code--must not like angle brackets. My example just added a backslash before the &#039;?&#039; and &#039;d&#039; in the regexp.</description>
		<content:encoded><![CDATA[<p>Oops, comment editor swallowed my example code&#8211;must not like angle brackets. My example just added a backslash before the &#8216;?&#8217; and &#8216;d&#8217; in the regexp.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68956</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Tue, 01 Sep 2009 16:19:17 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68956</guid>
		<description>If this was possible, I think the &#039;?&#039; and &#039;d&#039; in that regex would need to be escaped as follows:



I believe, however, that it will not work. I tried this a number of different ways and it appears that the Apache  directive ignores the &#039;?&#039; and everything that follows. Otherwise, how could &#039;myimage.jpg?1234567890&#039; possibly match a regexp ending in &quot;$&quot; (which means string ends here)? I did some tests and this is in fact the case--timestamped assets are matched by the original regex and fail to match with any additions after the file extension.</description>
		<content:encoded><![CDATA[<p>If this was possible, I think the &#8216;?&#8217; and &#8216;d&#8217; in that regex would need to be escaped as follows:</p>
<p>I believe, however, that it will not work. I tried this a number of different ways and it appears that the Apache  directive ignores the &#8216;?&#8217; and everything that follows. Otherwise, how could &#8216;myimage.jpg?1234567890&#8242; possibly match a regexp ending in &#8220;$&#8221; (which means string ends here)? I did some tests and this is in fact the case&#8211;timestamped assets are matched by the original regex and fail to match with any additions after the file extension.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68808</link>
		<dc:creator>Erik</dc:creator>
		<pubDate>Sun, 12 Jul 2009 10:00:20 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68808</guid>
		<description>After trying a few variations I found I needed to add

ExpiresActive on

to get the Expires headers working. Though I still cannot get the regexp for the timestamps to work. I have tried a few variations that work in Perl/Ruby but I get no results in Apache.

Anyone have a working example that handles timestamps?

Regards

Erik</description>
		<content:encoded><![CDATA[<p>After trying a few variations I found I needed to add</p>
<p>ExpiresActive on</p>
<p>to get the Expires headers working. Though I still cannot get the regexp for the timestamps to work. I have tried a few variations that work in Perl/Ruby but I get no results in Apache.</p>
<p>Anyone have a working example that handles timestamps?</p>
<p>Regards</p>
<p>Erik</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brad</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68761</link>
		<dc:creator>Brad</dc:creator>
		<pubDate>Tue, 23 Jun 2009 19:12:53 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68761</guid>
		<description>Good tip, don&#039;t forget to mention you need to enable mod_deflate also: a2enmod deflate in order for the gzipping to work.

Also, the a2enmod scripts are debian specific i believe?  other [lame] distros might need to manually add the module.

And, couldn&#039;t get josh&#039;s code to work, kept saying my css files didn&#039;t have expires headers</description>
		<content:encoded><![CDATA[<p>Good tip, don&#8217;t forget to mention you need to enable mod_deflate also: a2enmod deflate in order for the gzipping to work.</p>
<p>Also, the a2enmod scripts are debian specific i believe?  other [lame] distros might need to manually add the module.</p>
<p>And, couldn&#8217;t get josh&#8217;s code to work, kept saying my css files didn&#8217;t have expires headers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trevor</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68758</link>
		<dc:creator>Trevor</dc:creator>
		<pubDate>Fri, 19 Jun 2009 03:59:59 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68758</guid>
		<description>Thanks, Josh! I&#039;ll give that a try. Seems like it would work well to me.</description>
		<content:encoded><![CDATA[<p>Thanks, Josh! I&#8217;ll give that a try. Seems like it would work well to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Josh N. Abbott</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68751</link>
		<dc:creator>Josh N. Abbott</dc:creator>
		<pubDate>Wed, 17 Jun 2009 02:38:25 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68751</guid>
		<description>This would do the trick wouldn’t it:

# gzip html, css and js
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript
 
# far future expires headers
&lt;FilesMatch &quot;.(ico&#124;pdf&#124;flv&#124;jpg&#124;jpeg&#124;png&#124;gif&#124;js&#124;css&#124;swf)?d{10}$&quot;&gt;
  ExpiresDefault &quot;access plus 10 years&quot;
&lt;/FilesMatch&gt;</description>
		<content:encoded><![CDATA[<p>This would do the trick wouldn’t it:</p>
<p># gzip html, css and js<br />
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript</p>
<p># far future expires headers<br />
&lt;FilesMatch &quot;.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)?d{10}$&quot;&gt;<br />
  ExpiresDefault &quot;access plus 10 years&quot;<br />
&lt;/FilesMatch&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trevor</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68736</link>
		<dc:creator>Trevor</dc:creator>
		<pubDate>Fri, 12 Jun 2009 06:10:46 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68736</guid>
		<description>Yeah, I guess not. Any chance of getting some pointers on how to fix this?</description>
		<content:encoded><![CDATA[<p>Yeah, I guess not. Any chance of getting some pointers on how to fix this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vesa Nieminen</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68735</link>
		<dc:creator>Vesa Nieminen</dc:creator>
		<pubDate>Fri, 12 Jun 2009 05:57:08 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68735</guid>
		<description>I doubt you&#039;re using those asset timestamps in your CSS when referencing images used in the interface. File matching regex should probably be changed to only match if asset timestamp is present, just like Ryan Tomayko said.</description>
		<content:encoded><![CDATA[<p>I doubt you&#8217;re using those asset timestamps in your CSS when referencing images used in the interface. File matching regex should probably be changed to only match if asset timestamp is present, just like Ryan Tomayko said.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trevor</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68734</link>
		<dc:creator>Trevor</dc:creator>
		<pubDate>Fri, 12 Jun 2009 03:40:28 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68734</guid>
		<description>Hmm... yeah, I hadn&#039;t thought of the impact on chrome and whatnot. I&#039;ll make a note in the post and reconsider the approach. I&#039;m using the Rails-style asset timestamps, though. Wouldn&#039;t that take care of the cache busting? </description>
		<content:encoded><![CDATA[<p>Hmm&#8230; yeah, I hadn&#8217;t thought of the impact on chrome and whatnot. I&#8217;ll make a note in the post and reconsider the approach. I&#8217;m using the Rails-style asset timestamps, though. Wouldn&#8217;t that take care of the cache busting?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan Tomayko</title>
		<link>http://trevorturk.com/2009/06/11/speed-up-your-apachepassenger-rails-app-in-2min/#comment-68733</link>
		<dc:creator>Ryan Tomayko</dc:creator>
		<pubDate>Fri, 12 Jun 2009 03:24:20 +0000</pubDate>
		<guid isPermaLink="false">http://almosteffortless.com/?p=1402#comment-68733</guid>
		<description>That&#039;ll keep your assets cached forever in browsers and caches. New versions of those files will never be retrieved by clients unless they hard refresh or clear their cache. I&#039;d suggest using Rails-style asset timestamps (&quot;/foo.png?82349824984&quot;) and only set the expires/max-age headers if an asset timestamp is present. Great tip, though. Most sites will see a huge improvement.</description>
		<content:encoded><![CDATA[<p>That&#8217;ll keep your assets cached forever in browsers and caches. New versions of those files will never be retrieved by clients unless they hard refresh or clear their cache. I&#8217;d suggest using Rails-style asset timestamps (&#8220;/foo.png?82349824984&#8243;) and only set the expires/max-age headers if an asset timestamp is present. Great tip, though. Most sites will see a huge improvement.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
