On 22.10.2009 20:31, 1world1love wrote:
> 
> Thanks Rainer, that was very helpful and exactly what I was looking for,
> although I am still having issues getting it working. For anyone who may
> know, or have done this sort of thing. When I add in a rewrite, I get the
> following in my rewrite log:
> 
> -applying pattern '^/path/(.*)' to uri '/path/MyApp/MyApp.html'
> -rewrite '/path/MyApp/MyApp.html' -> '/MyApp/MyApp.html'
> -local path result: /MyApp/MyApp.html
> -prefixed with document_root to /htdocs/MyApp/MyApp.html
> -go-ahead with /htdocs/MyApp/MyApp.html [OK]
> 
> And of course the document_root does not apply because apache maps the path
> /Admin to tomcat via mod_jk and so I get a 404.
> 
> When I do a rewrite with the following:
> 
> RewriteRule ^/path/(.*)  https://%{HTTP_HOST}/$1 [L]
> 
> It does the rewrite and of course redirects to that URL, but that pushes it
> back through the load balancer which, in turn, pushes it to serverA because
> it doesn't see the /path part of the URL.

Sorry I didn't read all of it very carefully, but is it possible you
left out the "PT" flag (pass-through)? Without it, Apache doesn't run a
request which was changed by mod_rewrite through mod_jk. If it still
doesn't work, you can set your JkLogLevel to debug and ru one of the
requests that do not work and check in the log file, what URL mod_jk
received to forward. Maybe you have to fix your JkMount.

If it is not about mod_jk but mod_proxy, then set you LogLevel of Apache
to debug, which also adds a reasonable amount of information about proxy
processing.

Regards,

Rainer

> Rainer Jung-3 wrote:
>>
>> On 20.10.2009 16:59, 1world1love wrote:
>>> I know that there is probably an easy solution to this, but all the posts
>>> I
>>> have found relating to this don't seem to match my scenario, and most of
>>> them I frankly don't get.
>>>
>>> My issue is this: I have a server running apache and tomcat. The server
>>> is
>>> behind a load balancer and firewall that manages mapping url paths to
>>> specific servers. So we have a URL: http://example.com and based on the
>>> path
>>> it will do this:
>>>
>>> http://example.com -> serverA (/app/htdocs)
>>> http://example.com/path -> serverB (/app/htdocs/path)
>>>
>>> I have an app in tomcat that I have mounted via JK. If I go to
>>> http://myipaddress:8080/MyApp (by using the ip address I can bypass the
>>> load
>>> balancer) than my app loads. If I do http://myipaddress/MyApp my app
>>> loads
>>> (again bypassing the LB, but using the modjk). 
>>>
>>> But if I do http://example.com/MyApp than obviously this won't work since
>>> the LB will point to serverA. What seems to be at issue is that our
>>> configuration requires that our http root be htdocs and that there be a
>>> sub
>>> called 'path' so that although there is a root '/' all of our content is
>>> essentially served from '/path/' since the '/ ' URL will always go to
>>> serverA.
>>>
>>> So I have adjusted my modjk mount to handle requests that look like:
>>> http://example.com/path/MyApp, but when tomcat tries to handle this,
>>> obviously it can't find anything at /path/MyApp. It expects /MyApp.
>>>
>>> I tried setting a context with path="/path/MyApp"  docBase="MyApp", but
>>> that
>>> didn't work. I still get a 404.
>>>
>>> So, how can I specify that tomcat should expect '/path' in the URL for
>>> all
>>> potential apps?
>>
>> Probably
>>
>> http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html
>>
>> should contain answers.
>>
>> Regards,
>>
>> Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to