|
|
Virtual
Hosting
The
term Virtual Host refers to the practice of maintaining more
than one server on one machine, as differentiated by their
apparent hostname. For example, it is often desirable for
companies sharing a web server to have their own domains,
with web servers accessible as www.company1.com and www.company2.com,
without requiring the user to know any extra path information.
Apache
was one of the first servers to support IP-based virtual
hosts right out of the box. Versions 1.1 and later of Apache
support both, IP-based and name-based virtual hosts (vhosts).
The latter variant of virtual hosts is sometimes also called
host-based or non-IP virtual hosts |
IP-based
virtual hosting
IP-based virtual hosts use the IP address of the connection to determine
the correct virtual host to serve. Therefore you need to have a separate
IP address for each host. With name-based virtual hosting, the server
relies on the client to report the hostname as part of the HTTP headers.
Using this technique, many different hosts can share the same IP address.
Name-based virtual hosting
Name-based virtual hosting is usually simpler, since you need only
configure your DNS server to map each hostname to the correct IP
address and then configure the Apache HTTP Server to recognize the
different hostnames. Name-based virtual hosting also eases the demand
for scarce IP addresses. Therefore you should use name-based virtual
hosting unless there is a specific reason to choose IP-based virtual
hosting. Some reasons why you might consider using IP-based virtual
hosting:
- Some ancient clients are not compatible with name-based virtual
hosting. For name-based virtual hosting to work, the client must
send the HTTP Host header. This is required by HTTP/1.1, and is implemented
by all modern HTTP/1.0 browsers as an extension. If you need to support
obsolete clients and still use name-based virtual hosting, a possible
technique is discussed at the end of this document.
- Name-based virtual hosting cannot be used with SSL secure servers
because of the nature of the SSL protocol.
- Some operating systems and network equipment implement bandwidth
management techniques that cannot differentiate between hosts unless
they are on separate IP addresses.
|