Hi Steve,
I spent a lot of time on this when I first set up 3.2.2. I was going to do a
patch myself, until I found out that the 3.2.x versions were frozen and
wouldn't be adding any new features. (I really consider this a necessity,
though...) However, I decided to bite the bullet and only set up one domain
per webapp.
Looks like the patches I remember were for 3.3 and 4.0 -- nothing for
3.2.x... (coulda sworn!)
http://marc.theaimsgroup.com/?l=tomcat-dev&m=99267441502219&w=2
http://marc.theaimsgroup.com/?l=tomcat-dev&m=99663162526421&w=2
Thanks,
--jeff
----- Original Message -----
From: "Steve Heard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, August 20, 2001 1:24 PM
Subject: Re: VHosts causing app to load twice
> 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>
> >>>>>>
> >>>>>> ...
> >>>>>> ----------------------------------------------
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>