Hosting Multiple Domains on One IP in Windows 2000
Microsoft Windows 2000 Server enables administrators to host multiple distinct websites on a single IP address through a feature called Host Headers in Internet Information Services (IIS) 5.0. This article explains what host headers are, how the technology utilizes the HTTP 1.1 specification to route web traffic, and the basic configuration process required to map multiple domain names to a shared network interface.
The Host Header Feature in IIS 5.0
In Microsoft Windows 2000 Server, Internet Information Services (IIS)
version 5.0 introduced native support for Host Header
Names (commonly referred to simply as Host
Headers). Prior to this capability, web servers required a
separate, unique IP address or a non-standard TCP port for every
individual website hosted on the system. Host headers allow multiple
fully qualified domain names (such as www.example.com and
www.anotherexample.com) to resolve to the exact same IP
address and standard port 80.
How Host Headers Work
When a user visits a website, modern web browsers generate a request
based on the HTTP 1.1 protocol. Unlike HTTP 1.0, an HTTP 1.1 request
includes a dedicated Host field in the request header. This
field specifies the exact domain name the user entered in the browser's
address bar.
When the incoming request arrives at the Windows 2000 Server:
- The server receives the request on its assigned IP address and TCP port 80.
- IIS 5.0 inspects the
Hostheader sent by the client. - IIS matches the requested domain string to the identities assigned to the locally configured websites.
- The server routes the traffic to the corresponding website's root folder and returns the requested content.
Configuring Host Headers in Windows 2000 Server
Configuring this feature in Windows 2000 Server is managed directly inside the Internet Information Services management console:
- Open the Internet Services Manager snap-in from Administrative Tools.
- Right-click the desired website and select Properties.
- On the Web Site tab, ensure the IP address is set to the shared IP (or "All Unassigned") and the TCP port is set to 80.
- Click the Advanced button next to the IP address field.
- In the Multiple identities for this Web Site section, select an identity and click Edit (or click Add to create a new one).
- Enter the domain name (for example,
domain.comorwww.domain.com) into the Host Header value field. - Click OK to apply the settings.
Repeat this procedure for each website, entering the respective domain name in the Host Header value field. Once public DNS records point these domain names to the server's IP address, IIS will independently serve each site from that single address.
Technical Limitations
While host headers are ideal for standard HTTP traffic, they faced a notable limitation on Windows 2000 Server regarding Secure Sockets Layer (SSL) encryption. Because IIS 5.0 lacked support for Server Name Indication (SNI)—which had not yet been introduced—the SSL handshake occurred before the HTTP host header was decrypted. Consequently, Windows 2000 Server could not use host headers to differentiate multiple secure (HTTPS) websites sharing the same IP address; each SSL-secured site still required its own dedicated IP address.