Ruby w/ Apache mod_proxy

Yes, I know this is more specifically an Apache question, but you guys in this group know this stuff forwards & backwards it seems.

I am running the glassfish gem (in lieu of mongrel) on port 81. If I go to http://127.0.0.1:81 I get my rails app up beautifully. Unfortunately, I am also required to have Apache 1.3.33 running on the production server.

So I am trying to mod_proxy the site to the url with port 81 that I know works. Here is how I have the VirtualHost in my httpd.conf file set up:

<VirtualHost *>     ServerName gg     DocumentRoot C:/jruby/rails_apps/gg     ProxyPass /gg http://127.0.0.1:81     ProxyPassReverse /gg http://127.0.0.1:81     <Location /gg>         Order allow,deny         Allow from all     </Location> </VirtualHost>

Ive also have unremmed:

LoadModule proxy_module modules/mod_proxy.so -and- AddModule mod_proxy.c

whenever I go to hit http://127.0.0.1/gg I get a 404 not found error. I am certain my document root is correct. Can you fellows here who have done this tell me what I am missing? Thanks, Janna B.

I must also mention I have:

LoadModule jk_module modules/mod_jk.so

in httpd.conf

Who is throwing the 404 ? Is it rails telling you it doesn't have a controller called gg ?

Fred

Fred,

It does not appear to be -- when I check my gg/logs and gg/logs/ mongrel_ debug logs there is nothing mentioning an error here

maybe you cannot do this with Apaqche 1.3.33 ?

So I am trying to mod_proxy the site to the url with port 81 that I know works. Here is how I have the VirtualHost in my httpd.conf file set up:

<VirtualHost *> ServerName gg

...

</VirtualHost>

...

whenever I go to hit http://127.0.0.1/gg I get a 404 not found error. I am certain my document root is correct. Can you fellows here who have done this tell me what I am missing? Thanks, Janna B.

The servername of http://127.0.0.1/gg is not gg but 127.0.0.1 so I'm pretty sure that the virtualhost directive isn't having any effect for the request.

I'd try adding an entry in /etc/hosts to map gg to 127.0.0.1 and then point the browser at

http://gg

and see what happens

But that's not what I want. I need Apache listening on port 80, routing it to the glassfish gem running on 81 (or any other port other than 80)

I think you need to understand how Apache virtual hosts work, particularly the difference between ip based and name-based vhosts:

http://httpd.apache.org/docs/2.2/vhosts/name-based.html