Virtual
hosting - Web servers
Virtual hosting is a method that web servers use to
host more than one domain name on the same computer
and IP address.
With web browsers that support HTTP/1.1 (as most do),
upon connecting to a webserver, they send the address
that the user typed into their browser's address bar
(the URL). The server can use this information to determine
which webpage to show the user.
For instance, a server could be receiving requests
for two domains, www.site1.com and www.site2.com, both
of which resolve to the same IP address. For www.site1.com,
the server would send the HTML file file from the directory
/www/JoeUser/site1/, while requests for www.site2.com
would make the server serve pages from /www/FrankUser/site2/.
Cons
If the Domain Name System (DNS) is not properly functioning,
it becomes much harder to access a virtually-hosted
website. Ordinarily, in this case, the user could try
and fall back to using the IP address to contact the
system, as in http://12.34.56.78/. However, the web
browser doesn't know what hostname to send when this
happens, so the server will respond with a default website—often
not the site the user expects. This workaround is not
really useful for an average web user, but may be of
some use to a site administrator while fixing DNS records.
A workaround in this case is to add the IP address
and hostname to the client system's hosts file. At this
point, accessing the server with the domain name should
work again. However, users should be careful when doing
this, as any changes to the true mapping between hostname
and IP address will be overridden by the local setting.
Another issue with virtual hosting is the inability
to host multiple secure websites running Secure Sockets
Layer or SSL. Because the SSL handshake takes place
before the expected hostname is sent to the server,
the server doesn't know which encryption key to use
when the connection is made. One workaround is to run
multiple web server programs, each listening to a different
incoming port, which still allows the system to just
use a single IP address. Another option is to do IP
aliasing, where a single computer listens on more than
one IP address.
|