tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Kilbride" <j...@kilbride.com>
Subject Re: VHosts causing app to load twice
Date Mon, 20 Aug 2001 19:20:49 GMT
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" <Larry.Isaacs@sas.com>
To: <tomcat-user@jakarta.apache.org>
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:sheard@publicinteractive.com]
> > Sent: Monday, August 20, 2001 1:44 PM
> > To: tomcat-user@jakarta.apache.org
> > Subject: Re: VHosts causing app to load twice
> >
> >
> > 3.2.2
> >
> >
> >
> >
> > on 8/20/01 12:53 PM, Larry Isaacs at Larry.Isaacs@sas.com 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:sheard@publicinteractive.com]
> > >> Sent: Monday, August 20, 2001 12:39 PM
> > >> To: tomcat-user@jakarta.apache.org
> > >> 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>
> > >>
> > >> ...
> > >> ----------------------------------------------
> > >>
> > >
> >
>


Mime
View raw message