User guide
- 95 -
Appendix C
Virtual Hosting Issues
Servers serving more than one web site may do virtual hosting. The WebMux supports virtual
hosting by checking the virtual server’s response. There are three different situations for the
WebMux to handle.
If the service is HTTPS, there is no way to do virtual hosting on the same IP address. However,
each HTTPS farm can be on a different IP address on the same server. The reason that each
HTTPS server must have its own IP address is that any web server software, IIS or Apache,
can not see the URL in the HTTPS packets, since they are encrypted. The IIS or Apache
server only decrypts the URL after the packet is sent to a particular process. Since no web
server software supports virtual hosting HTTPS on the same IP address, the WebMux does
not need to do anything extra other than load balancing all the packets for that particular farm.
If the service is HTTP, then any web server software, IIS or Apache, can host almost
unlimited virtual farms on each IP address. Many hosting centers handle this situation by
putting all the servers serving each virtual host on a server farm on the WebMux. The
WebMux will load balance the traffic for all the incoming traffic for that IP address to
different servers in that farm. During farm setup, the label for the farm could be one of the
virtual farm’s base URL, say www.mydomain.com , the WebMux actually periodically reads
a page from this URL. If server that serves that URL does not response correctly, the
WebMux will mark that server dead. Since every server in that farm serves all the virtual
farms, the WebMux expects the problem with one server in one URL will affect all the URLs
in that farm.
Another situation is the server that serves HTTP virtual sites using a single private IP address
already before load balancing. After adding load balancer, some the sites want to have their
own IP addresses. The WebMux allows set up separate farm for each site having its own
public IP address, but point to the same sets of servers in the private network. In this situation,
each separate farm could have its own label as www.site1.com and www.site2.com, etc. The
WebMux will actually do health check on each URL by periodically read a default page from
that site.
In the virtual hosting situation, the label and response from the web servers are critical for
reliable services. The WebMux checks the label and checks the server for its health situation
based on the URL supplied in the label. If the server response is 500 or greater, which is an
error code indicating server internal error, the WebMux will exclude that server from serving
the farm. If server responses 402, which indicating access is denied for that virtual farm, the
WebMux will mark that server dead. We have checked with IIS server and Apache server,
they both follow the same rules.