mongrel cluster w/ apache

hi all,

i'm working on deploying my app w/ apache and a mongrel cluster. i've started by copying the instructions and code from the agile rails book and everything seems to be working fine but apache isn't forwarding my requests to mongrel the way i expect it should. there's nothing in the rewrite logs and nothing but 404 errors in the apache error logs.

http://127.0.0.1:8000/railsaction/railsmethod

...loads up my app in mongrel so all is fine there. i'm thinking apache should have no problem when i browse to:

http://elsewhere.thealarmlights.net:555/railsaction/railsmethod

i get 404 errors...

is there some special incantation necessary to make this work?

the relevant parts of my apache config follow:

<Proxy balancer://mongrel_cluster> BalancerMember http://127.0.0.1:8000 BalancerMember http://127.0.0.1:8001 </Proxy> <VirtualHost *:555> ServerName thealarmlights.net DocumentRoot /usr/local/www/weposs/current/public <Directory "/usr/local/www/weposs/current/public" >    Options FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all </Directory> RewriteEngine On RewriteLog logs/weposs_rewrite_log RewriteLogLevel 9 # Check for maintenance file and redirect all requests RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f RewriteCond %{SCRIPT_FILENAME} !maintenance.html RewriteRule ^.*$ /system/maintenance.html [L] # Rewrite index to check for static RewriteRule ^/$ /index.html [QSA] # Rewrite to check for Rails cached page RewriteRule ^([^.]+)$ $1.html [QSA] # Redirect all non-static requests to cluster RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] </VirtualHost>

if anyone can help me sort this i'd appreciate it so much. i worked so hard to get this far (and learned a lot) but i'm stuck pretty bad at this point.

thanks.

-mike bannister

Hey Mike,

Not real sure to be honest but I'd try dropping a:

ServerAlias elsewhere.thealarmlights.net

in that vhost section. Unless it's the first vhost configured I don't think it will find it without that.

good luck Tim

1. You need to add:

        ProxyPass / balancer://mongrel_cluster/         ProxyPassReverse / balancer://mongrel_cluster/

2. Make sure your proxy is allowed from Apache configuration file. You should have:

        ProxyRequests On

        <Proxy *>                 AddDefaultCharset off                 Order deny,allow                 Allow from all         </Proxy>

Notice there's "Allow from all" - that's turning it on. However, since you're getting 404 error and not 500. That appears to be okay, but check it anyway.

Hope this helps.

Joon

As Tim said, you probably need the ServerAlias directive. You didn't show it, so I wonder if you have the "NameVirtualHost *:555" specified anywhere. I believe you may need that in your case. I did for my setup, which is very similar to yours. In fact, everything else about your configuration is identical to my own, and it's working for me (although I use port 80 and I just use "www.domain.com", without ServerAlias).

n

mike wrote: