I want to run straight tomcat as a proxy server.  (I understand that there are 
a variety of other applications out there that may perform better and offer 
more features.  I also understand that I could front tomcat with apache and do 
some sort of rewriting solution.  I'd rather not do any of these; I just want 
to use plain tomcat.  :) )

I've written a servlet and overridden the commonly used default servlet 
'org.apache.catalina.servlets.DefaultServlet' with my own.  All of this is 
working fine.

The problem occurs when I run my server as a proxy server.  Web browsers will 
make the request for "http://www.google.com"; look something like this:

GET http://www.google.com/ HTTP/1.1
Accept: */*
Accept-Language: en-us
Host: www.google.com

(there are other parts to it, but really this is all that matters.)  My tomcat 
responds with

HTTP/1 1 400 No Host matches server name www.google.com
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
Date: Sat, 22 Jul 2006 20:10:26 GMT
Connection: close

Because, of course, my server host name is not www.google.com.

I've read the documentation and a good deal of the source code and now 
understand that org.apache.catalina.core.StandardEngine has associated with it 
a set of Hosts each which is configured with one or more host names (usually 
one but org.apache.catalina.core.StandardHost supports 'host name aliases').  
If the Engine cannot find a host matching the "Host" http header then it will 
respond back with the result above.  (I guess it is a bit more complicated than 
this since my traces through the code show other classes, like host-manager, 
getting in the mix.)

I expected that Tomcat could accomplish what I am trying to do purely with 
configuration but after reading through the documentation, FAQs, and much of 
the catalina code, I can't find the solution.  (The one solution that I have 
come up with, involving subclassing the org.apache.catalina.core.StandardHost 
class and overriding the 'findChild' method, feels hacky and like I said -- I 
thought that I should be able to do what I want using config only.)

To summarize - I would like to configure my tomcat instance to call my servlet 
independent of the URL or http "host" header which tomcat receives.  Does 
anyone know how to do this?

Thanks.

Jason McHugh

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to