Do you want to use a single computer to host many different web sites? There are no less than four quite common ways of doing this - each of which has its advantages and disadvantages.
At the
top left of my diagram, you have
virtual hosting. In this arrangement, all the domains hosted on a single server use the same IP address (machine number) and TCP port (service number within the machine), with the single piece of server software telling the domains apart by information provided by the client (browser) using a
host: header. This is the cheapest of solutions, very commonly used indeed, and a fine solution for the majority of sites which will be quite small in nature.
At the
bottom left of my diagram, you have
virtual hosting with multiple IP addresses. In order to separate the different sites a bit more, you can use multiple IP addresses and have your single piece of server software telling the sites apart by the IP address (or the port number) on which contact is made. There are only occasional benefits with this approach, and these days - with IP4 address space running out - it can be regarded as a little antisocial to hog addresses.
At the
top right of my diagram, you have
multiple servers. Again using multiple IP addresses / TCP posts, but now running several servers on the same computer. You might do this is you have some Java based applications running Tomcat that you want to contact directly, and others to be fed via Apache httpd, or if you want to run two different versions of httpd (it's actually something that we do on one of our live servers, with some sites hosted by Apache httpd 2.0 and others by Apache httpd 2.2. It would be unusual to use this approach for multiple copies of the same server, as sharing a server helps in the balancing out of the load when one site is quiet and the other busy, and it saves duplicating services in computer memory too.
And at the
bottom right of my diagram, you have
virtual servers. These days, you can run complete "virtual computers" on a single physical box - a popular trend, illustrated by this diagram. Each web site owner thinks that he / she has a complete computer but in practise, there are a lot of sites running within a single system. The scheme helps on the physical maintainance, the energy footprint (less computers!) etc, and we'll be seeing a lot more of this in the future.
We cover the setup, configuration and maintainance of a varety of options such as the above on our
Deploying LAMP applications course, next running early next month.
(written 2008-11-20, updated 2008-11-24)
Associated topics are indexed under
A604 - Web Application Deployment - Apache httpd - virtual hosts [3568] Telling which ServerAlias your visitor used - useful during merging domains - (2012-01-04)
[3132] Virtual Hosting with Apache http server - an overall scheme, and avoiding common pitfalls - (2011-01-14)
[1687] Virtual Hosting on Apache httpd - a primer example - (2008-06-25)
[690] Adding Virtual Hosts - (2006-04-19)
A900 - Web Application Deployment - Tomcat - Extra Features [3018] Tuning Apache httpd and Tomcat to work well together - (2010-10-27)
[1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
[1899] Virtual Hosting under Tomcat - an example - (2008-11-22)
[1383] Monitoring mod_jk and how it is load balancing - (2007-10-07)
[1377] Load Balancing with Apache mod_jk (httpd/Tomcat) - (2007-10-02)
[1376] Choosing between mod_proxy and mod_rewrite - (2007-10-02)
[1370] Apache Tomcat Performance Tuning - (2007-09-29)
[1121] Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29)
[1006] Apache httpd and Apache Tomcat together tips - (2006-12-24)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
Some other Articles
Table TopicsEvery cloud has a silver liningKeeping on an even keelVirtual Hosts and Virtual ServersComparison - with and without flashShopping in MelkshamSome Linux and Unix tipsMelksham Chamber of Commerce and IndustryRuby to access web services