Virtual hosting is the capability of a single system to server
multiple web domain addresses. For example a single server could
respond to requests for www.acme.com and www.coyote.com. This is
clearly useful for public web sites, but virtual hosting is also
an excellent technology to manage separate content for a single
domain. For example: the administration interface and the user
interfaces can be implemented as separate virtual hosts.
Configuration Directives
Virtual hosts are created by
grouping configuration file directives within a
VirtualHost
directive block. Directives within the block apply only to the
virtual host.
<VirtualHost 206.148.97.56>
ServerName www.acme.com
DocumentRoot /var/www/acmeDocs
...
</VirtualHost>
Before declaring a VirtualHost directive for name-based virtual
hosting, you must use a
NameVirtualHost
directive. This specifies that the given IP address will use
name-base hosting.
Name-base Virtual Hosts
Name-based virtual hosts allow
multiple virtual hosts to share an IP address by using the
Host HTTP header to distinguish which
virtual host should service the request.
NOTE: Name-based virtual hosting cannot be used with the SSL
protocol. You must use IP-based hosting.
Example
NameVirtualHost 206.148.97.56
<VirtualHost 206.148.97.56>
ServerName www.acme.com
DocumentRoot /var/www/acme
...
</VirtualHost>
<VirtualHost 206.148.97.56>
ServerName www.coyote.com
DocumentRoot /var/www/coyote
...
</VirtualHost>
In this example www.acme.com and www.coyote.com share the IP
address 206.148.97.56. Note that the IP address specified by the
NameVirtualHost directive must match the IP address in the
VirtualHost directive. You may specify port numbers with the IP
addresses if you require a port other than port 80.
WARNING: Some very old clients may not include the Host header in
their HTTP request and so may not be able to use Name-based
virtual hosting.
IP-based Virtual Hosts
IP-based
virtual hosts allow multiple virtual hosts to be supported on a
single server. Each IP-based virtual host consumes a separate IP
address. The SSL protocol is supported with IP-based virtual
hosting.
<VirtualHost 206.148.97.56>
ServerName www.acme.com
DocumentRoot /var/www/acme
...
</VirtualHost>
<VirtualHost 206.148.97.57>
ServerName www.coyote.com
DocumentRoot /var/www/coyote
...
</VirtualHost>
In this example www.acme.com and www.coyote.com are hosted.