You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by D Kelmi <mi...@laudlink.ru> on 2003/12/05 09:48:15 UTC

Re[4]: [users@httpd] NameVirtualHost * with

Hello Boyle,

Friday, December 5, 2003, 11:27:37 AM, you wrote:

>> -----Original Message-----
>> From: D Kelmi [mailto:miksir@laudlink.ru]
>>
>> >   Try this (notice two NameVirtualHost directives):
>> > NameVirtualHost empty.somedomain.com
>> > NameVirtualHost www.somedomain.com

BO> First, can we correct the advice posted earlier. NameVirtualHost should
BO> take an IP address as an argument - not a fully-qualified domain name.
BO> If you give it an FQDN, it will "work" but only because apache resolves
BO> the name to its IP. If you have any DNS problems, apache could fail to
BO> start. 

  NameVirtualHost also can take * as argument for match all addresses.

BO> To return to your misconfiguration problem; 

>>> NameVirtualHost *
>>> 
>>> <VirtualHost *>
>>>      DocumentRoot ...
>>>      ServerName empty.somedomain
>>> </VirtualHost>
>>> 
>>> <VirtualHost 1.2.3.4>
>>>      DocumentRoot ...
>>>      ServerName www.somedomain
>>> </VirtualHost>
>>> 
>>>    But now for 1.2.3.4 run _ip-based_ virtual hosting. As result, for
>>>    requests to 1.2.3.4 always answer second virtualhost.

BO> IP-based VHs supersede name-based VHs so the apache behaviour you see is
BO> exactly correct. Not a bug. 

   Why? I say in NameVirtualHost what my all IP addresses must support
   name-based virtual hosting. And now Apache must look all VHs with
   the same IP (same with request destination) and also look VHs with
   * (VHs which support any request destination). Right?

>>>    And more, if
>>>    i add third virtualhost this 1.2.3.4 IP, apache generate warning
>>>    about overlaps.

BO> Of course it does. How is apache supposed to decide which VH to use if
BO> they both have the same IP address? It is like you have two letter-boxes
BO> with the same name on them. How can the postman decide which one to use?

    Again, I say, what 1.2.3.4 used for name-based hosting and apache
    must select VHs using Host: header and ServerName/ServerAlias
    directives in VH.

>>>    I think, that's wrong, because NameVirtualHost * say, what for
>>>    all IP run name-based virtual hosting.

BO> You are assuming that NameVirtualHost will take priority and that the
BO> IP-based VH will live inside it somehow. If you think about it, that is
BO> impossible.

BO> You do not tell us how many IP addresses you have on your server. If
BO> only one, then I guess you are trying to achieve the following:

BO> 	if hostname is set in request, do name-based VHing
BO> 	else
BO> 	use IP-VHing

BO> The way to set that up is as follows:

BO> NameVirtualHost 1.2.3.4
BO> <VH 1.2.3.4>
BO>   ServerName dummy
BO>   DocumentRoot /path/to/default/site
BO> </VH>
BO> <VH 1.2.3.4>
BO>   ServerName site_1
BO>   DocumentRoot /path/to/site_1
BO> </VH>
BO> <VH 1.2.3.4>
BO>   ServerName site_2
BO>   DocumentRoot /path/to/site_2
BO> </VH>
BO> etc.

BO> If the request matches site_1 or site_2, it will be served from the
BO> correct VH. If it doesn't match, or doesn't contain a hostname, apache
BO> will fall-back to the *first* VH in the list, which is the "dummy" site.

Ok. Now say, which VHs will be "dummy" in this example:
NameVirtualHost 1.2.3.4
<VH *>
  ServerName site1
</VH>
<VH 1.2.3.4>
  ServerName site2
</VH>

Which? site1 or site2? I think, what site1, because <VH *> match
1.2.3.4 IP also. Apache think, what site2.

-- 
Best regards,
 D Kelmi                         mailto:miksir@laudlink.ru


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] NameVirtualHost * with

Posted by Jez Hancock <je...@munk.nu>.
On Fri, Dec 05, 2003 at 11:48:15AM +0300, D Kelmi wrote:
> Ok. Now say, which VHs will be "dummy" in this example:
> NameVirtualHost 1.2.3.4
> <VH *>
>   ServerName site1
> </VH>
> <VH 1.2.3.4>
>   ServerName site2
> </VH>
> 
> Which? site1 or site2? I think, what site1, because <VH *> match
> 1.2.3.4 IP also. Apache think, what site2.
You're missing the point - the above will cause the 'overlap' error
because 1.2.3.4 overlaps with *.  See my other post.


-- 
Jez Hancock
 - System Administrator / PHP Developer

http://munk.nu/

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org