Jeff,
You've managed to articulate the problem much better then my original post!
I'm afraid as you've said, it is unfortunate that this isn't possible in
3.2.
I hunted around for that patch that you thought might exist that allows
multiple hosts per entry but couldn't find it. Anyone know where it might
be?
Thanks,
-Steve
on 8/20/01 3:48 PM, Larry Isaacs at [EMAIL PROTECTED] wrote:
> Hi Jeff,
>
> Maybe I can increase my understanding here, since I not
> that experienced with the Apache side.
>
> The point of:
>
> NameVirtualHost 111.22.33.44
>
> <VirtualHost 111.22.33.44 >
> ServerName www.foo.com
> ...
> </VirtualHost>
>
> was that mod_jk would identify the host as "www.foo.com"
> for both Both "http://111.22.33.44/..." and
> "http://www.foo.com/...". Thus, Tomcat could match it to a
> single context identified by "www.foo.com". I can't claim to
> understand the NameVirtualHost directive very well, but without
> it, I believe that mod_jk would identify the host as
> "111.22.33.44" instead of "www.foo.com" for
> "httpd://111.22.33.44/...".
>
> Obviously, I'm coming at this from the point of view of
> keeping mod_jk and Tomat happy, and not necessarily what
> is "normal" for Apache.
>
> By the way, ApacheConfig in Tomcat 3.3 also supports the
> following for "ServerAlias":
>
> server.xml:
> <Host name="www.foo.com" address="111.22.33.44" >
> <Alias name="www.bar.com" />
> <Context ... />
> </Host>
>
> which would generate conf/auto/mod_jk.conf:
>
> NameVirtualHost 111.22.33.44
>
> <VirtualHost 111.22.33.44 >
> ServerName www.foo.com
> ServerAlias www.bar.com
> ...
> </VirtualHost>
>
> Cheers,
> Larry
>
>> -----Original Message-----
>> From: Jeff Kilbride [mailto:[EMAIL PROTECTED]]
>> Sent: Monday, August 20, 2001 3:21 PM
>> To: [EMAIL PROTECTED]
>> Subject: Re: VHosts causing app to load twice
>>
>>
>> Hi Larry,
>>
>> It doesn't really make sense to set up Name-based virtual
>> hosting this way.
>> In essence, your saying all requests for 111.22.33.44 should
>> go to the same
>> place as all requests for www.foo.com (in httpd.conf). In
>> that case, I think
>> you should stick with IP-based vhosts. Your Apache config
>> would then be:
>>
>> <VirtualHost 111.22.33.44 >
>> ........
>> ........
>> </VirtualHost>
>>
>> With this setup, the "host" header is ignored and all requests to
>> 111.22.33.44, no matter what domain they come in on, will go
>> to the right
>> place -- from Apache's standpoint, I don't know if it's
>> handled correctly in
>> Tomcat. You should be able to set up your "Host" directive in
>> server.xml to
>> catch the IP Address and make it work that way, though.
>>
>> I think the real problem with Name-based vhosts comes when
>> you're trying to
>> point more than one domain name at the same Tomcat webapp:
>>
>> NameVirtualHost 111.22.33.44
>>
>> <VirtualHost 111.22.33.44>
>> ServerName "foo.com"
>> ServerAlias "www.foo.com"
>> .......
>> </VirtualHost>
>>
>> <VirtualHost 111.22.33.44>
>> ServerName "bar.com"
>> ServerAlias "www.bar.com"
>> .......
>> </VirtualHost>
>>
>> Now, if you want foo.com, www.foo.com, bar.com, and
>> www.bar.com to all point
>> at the same webapp, there's no way to do it without having
>> four different
>> instances of your webapp -- at least not in TC 3.2.x. I don't
>> know about
>> 3.3, but I think 4.0 has an "Alias" directive. I'm not sure
>> if it's actually
>> implemented, though.
>>
>> It may be kind of extreme to have different vhosts pointing
>> at the same
>> webapp, however I think it's pretty common to want foo.com
>> and www.foo.com
>> to point to the same place. It's really unfortunate that
>> Tomcat (3.2.x)
>> doesn't handle this without having to instantiate two
>> different webapps. I'd
>> be interested in fixing this in 3.2.x, if development wasn't already
>> frozen...
>>
>> Thanks,
>> --jeff
>>
>> ----- Original Message -----
>> From: "Larry Isaacs" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED]>
>> Sent: Monday, August 20, 2001 11:23 AM
>> Subject: RE: VHosts causing app to load twice
>>
>>
>>> In Tomcat 3.3 I have made changes to ApacheConfig.java to try
>>> to address this. I think with Tomcat 3.2.2 you will need to
>>> do the Apache part manually, which it seems you may already
>>> be doing.
>>>
>>> I haven't done much with Vhosts on Apache beyond my tests
>>> while playing with ApacheConfig. If I am in error, someone
>>> let me know. It is my understanding that what you want is:
>>>
>>> server.xml
>>> <Host name="www.foo.com" >
>>> <Context ... />
>>> </Host>
>>>
>>> httpd.conf or an include:
>>> NameVirtualHost 111.22.33.44
>>>
>>> <VirtualHost 111.22.33.44 >
>>> ServerName www.foo.com
>>> ...
>>> </VirtualHost>
>>>
>>> For me, this works under Tomcat 3.3. Both "http://111.22.33.44/..."
>>> and "http://www.foo.com/..." come over to Tomcat as "www.foo.com".
>>> I haven't tried this with Tomcat 3.2.x. I also haven't tried this
>>> with *nix, just Win2k and Win98.
>>>
>>> One additional note. I had lots of trouble dealing with the "root"
>>> contexts. Your httpd.conf below says the "root" context (i.e.
>>> DocumentRoot) is at "/usr/local/apache/htdocs" and Tomcat thinks
>>> it is at "/usr/local/apache/servlets". I think this situation is
>>> ripe for problems. Not knowing your application, it is hard to say
>>> what the best approach would be.
>>>
>>> Larry
>>>
>>>
>>>> -----Original Message-----
>>>> From: Steve Heard [mailto:[EMAIL PROTECTED]]
>>>> Sent: Monday, August 20, 2001 1:44 PM
>>>> To: [EMAIL PROTECTED]
>>>> Subject: Re: VHosts causing app to load twice
>>>>
>>>>
>>>> 3.2.2
>>>>
>>>>
>>>>
>>>>
>>>> on 8/20/01 12:53 PM, Larry Isaacs at [EMAIL PROTECTED] wrote:
>>>>
>>>>> Which version Tomcat are you using? I have tried to deal with
>>>>> this issue in Tomcat 3.3.
>>>>>
>>>>> Larry
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Steve Heard [mailto:[EMAIL PROTECTED]]
>>>>>> Sent: Monday, August 20, 2001 12:39 PM
>>>>>> To: [EMAIL PROTECTED]
>>>>>> Subject: VHosts causing app to load twice
>>>>>>
>>>>>>
>>>>>> I have a servlet based application that needs to be accessed
>>>>>> using both the
>>>>>> the server IP address and the server domain name.
>>>>>>
>>>>>> The problem is that because I have two <host> entries
>> for the same
>>>>>> application tomcat "loads" them twice. Not only does this
>>>>>> leave me with two
>>>>>> instances of the servlets, but the ones I have marked to
>>>>>> load on init have
>>>>>> their code called twice which interferes with itself.
>>>>>>
>>>>>> I have tried every combination of VirtualHosts I can think of
>>>>>> and always run
>>>>>> into the issue of in order for Tomcat to recognize that it
>>>>>> should handle the
>>>>>> request to the servlet I have to add a <Host> entry in
>>>>>> server.xml. If I
>>>>>> leave out the entry for the IP address Apache passes the
>>>>>> request along to
>>>>>> tomcat fine, but then Tomcat doesn't recognize it. Likewise
>>>>>> for the domain
>>>>>> name.
>>>>>>
>>>>>> Any thoughts or help? I have included snippets of what I
>>>> think are the
>>>>>> relevant config files and how they should look.
>>>>>>
>>>>>> -Steve
>>>>>>
>>>>>> ----------------------------------------------
>>>>>> From http.conf:
>>>>>>
>>>>>> ...
>>>>>>
>>>>>> NameVirtualHost 111.22.33.44
>>>>>>
>>>>>> <VirtualHost 111.22.33.44 >
>>>>>> ServerName 111.22.33.44
>>>>>> ErrorLog /usr/local/apache/logs/error_log
>>>>>> DocumentRoot /usr/local/apache/htdocs
>>>>>>
>>>>>> JkMount /*.servlet ajp13
>>>>>> </VirtualHost>
>>>>>>
>>>>>> <VirtualHost 111.22.33.44 >
>>>>>> ServerName www.foo.com
>>>>>> ErrorLog /usr/local/apache/logs/error_log
>>>>>> DocumentRoot /usr/local/apache/htdocs
>>>>>>
>>>>>> JkMount /*.servlet ajp13
>>>>>> </VirtualHost>
>>>>>> ----------------------------------------------
>>>>>>
>>>>>> ----------------------------------------------
>>>>>> From server.xml:
>>>>>>
>>>>>> ...
>>>>>>
>>>>>> <Host name="111.22.33.44" >
>>>>>> <Context path="" docBase="/usr/local/apache/servlets" />
>>>>>> </Host>
>>>>>>
>>>>>>
>>>>>> <Host name="www.foo.com" >
>>>>>> <Context path="" docBase="/usr/local/apache/servlets" />
>>>>>> </Host>
>>>>>>
>>>>>> ...
>>>>>> ----------------------------------------------
>>>>>>
>>>>>
>>>>
>>>
>>
>