I have a Centos server that I would rather not upgrade to Apache 2.2
due to other sites in production (and the PITA that the upgrade
appears to be). So, I’m using Apache 2.0 <=> Pen <=> 3 Mongrels
3 Mongrels on 11100-11102.
Pen on 11180.
(Aside: Pen vs. Pound? Opinions? Tradeoffs?)
From the command line on the server, I can see that that is working.
“lynx http://
localhost:11180/events” gives me back a “Routing Error: no route
found
to match “/events” with {:method=>:get}”. That’s correct – there is
no such route. The important thing is that it’s talking to a mongrel.
It’s the Apache <=> Pen that I can’t get to work.
Below is my entry in conf.d: (a few items replaced with [stuff] in
brackets to protect the innocent…
Any obvious issues? I can get to the static web page, but not the
rails app…
<VirtualHost [IP_Address]:80>
RoR app
#SetEnv RAILS_ENV development
SetEnv RAILS_ENV production
ServerName [fqdn of virtual host]
ServerAlias [hostname of virtual host]
DocumentRoot /home/boster/www/tilthouse/dev/rails/[app_dir]/temp-
deploy/public
LogFormat “%h %l %u %t "%r" %>s %b "%{Referer}i" "%
{User-Agent}i"”
CustomLog /home/boster/www/logs/[hostname].access_log common
ErrorLog /home/boster/www/logs/[hostname].error_log
<Directory “/home/boster/www/tilthouse/dev/rails/[app_dir]/temp-
deploy/public”>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
ProxyPass / http://localhost:11180/
ProxyPassReverse / http://localhost:11180/
RewriteEngine On
Rewrite index to check for static
Letting rails handle the case with routes
RewriteRule ^/$ /index.html [QSA]
Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]
Expanded setup to only proxy rails pieces (not static pages)
Adapted from http://rubyforge.org/pipermail/mongrel-users/2006-
July/000757.html
RewriteCond $1 !images|errors|stylesheets|javascripts|files|
favicon.ico|robots.txt
Redirect all non-static requests to cluster
XXX DON’T check the filesystem, as this is extremely slow for
each
XXX request. Instead, rely on the patterns above. Add more if
needed.
#RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
Pass everything else thru to mongrel cluster
#RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI}
[P,QSA,L]