Server Farm with Multiple Host Names Deployment

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

You can install and configure Microsoft to allow your server farm to host several sites on the same virtual server using the same IP address, but multiple site names and separate content. This configuration is known as a server farm serving multiple host names. In this configuration, you have a single IP address (111.11.111.11, for example), but this same IP address can point to the following, distinct, sites:

  • Mary.MyServer.com

  • John.MyServer.com

  • ProjectTeam.MyServer.com

  • Information.MyServer.com

Each of these sites has its own content, its own set of users, and a different site owner, and can use different features, as the owner desires. They only share the same virtual server using the same IP address; the Web servers and configuration database make the appropriate content available, depending on the URL requested.

This topic describes the steps you need to take to configure the servers in your server farm to serve multiple host names with .

Note: This is an advanced scenario, meant for experienced server farm administrators and Internet service providers. This is only one of several hosting choices for . For more information about hosting choices, see "Structuring the URL Namespace" in Windows SharePoint Services Architecture . For more information about setting up other hosting choices, see the the following topics: Single Server Deployment , Remote SQL Server Deployment , Configuring Two Virtual Servers to Host the Same Content and Separate Active Directory Organization Unit Deployment .

Preparing the Servers

Before you can install and configure in your server farm, you must be sure you meet the hardware and software requirements and plan out your server farm configuration. The following sections help you determine the configuration to use.

Hardware and Software Requirements

To be able to set up in a server farm configuration, you must meet the following criteria:

  • The front-end Web servers must be running Microsoft (Standard, Enterprise, Datacenter, or Web Edition). Note that the hardware requirements for are the same as the installation requirements.

    • The front-end Web servers must be configured as Web servers (running Internet Information Services in IIS 6.0 worker process isolation mode) and must be running ASP.NET. For more information about installing and configuring IIS and ASP.NET, see the documentation.

    • The front-end Web servers must be using the NTFS file system. Microsoft Windows includes a conversion utility (Convert.exe) that you can use to convert an existing file allocation table (FAT) volume to NTFS without losing data.

  • The back-end servers must be running Microsoft SQL Server 2000 Service Pack 3 or later.

  • The client computers must be running Microsoft Internet Explorer 5.01 or later (best results with Microsoft Internet Explorer 5.5 or later) or Netscape Navigator 6.2 or later to use Web site features.

  • To use SQL Server Enterprise Manager, you must be a SQL Server database administrator. To configure IIS, you must be an administrator on the local computer.

For a complete list of hardware and software requirements, see Hardware and Software Requirements .

Planning for Scale

When you decide to implement a server farm, it is generally because you want to support a large-scale Web environment. Achieving scalability depends on a number of factors, each of which must be regulated in its own way. These factors include:

  • The amount of processing power available for each Web site.

    You can manage processing power by ensuring that you have appropriate load balancing up front, and a good balance between the number of front-end Web servers and SQL Server back-end servers. A recommended minimum configuration for a server farm includes three front-end Web servers and two back-end database servers.

  • The amount of disk space available for Web site content and data.

    You can manage disk space issues by using quotas to limit Web site size, and by specifying maximum sizes for content databases. For more information about using quotas and content databases, see Configuring Site Quotas and Locks and content databases.

  • Protection from single-box failure.

    Using multiple front-end Web servers to serve the same content gives you protection from failure on the front end. You can use the failover protection included with SQL Server 2000 to help protect your back-end servers. For more information about SQL Server failover protection, see the SQL Server documentation.

  • The number of sites stored in each content database.

    You will get better results by limiting the size of each content database and simply adding more content databases when you add more sites. Smaller content databases make it easier to back up and restore or move sites. Note that database performance may degrade if you add too many databases. Balance your needs for backup and restore performance against those for database performance.

Balancing the load for the front-end Web servers is also part of the scalability equation. supports two methods of load balancing:

  • Software, such as Network Load Balancing (NLB) services in . NLB runs on the front-end Web servers, and uses the TCP/IP networking protocol to route requests. Because NLB (and other software load balancing solutions) runs on the front-end Web servers, it uses the front-end Web system resources, trimming the resources you can use for serving Web pages. However, the impact on system resources is not great, and a software solution can handle up to 32 front-end Web servers.

  • Hardware, such as a router or switch box. Load balancing hardware uses your network to direct Web site traffic between your front-end Web servers. Load balancing hardware is more expensive to set up than software, but does not use any of your front-end Web server resources to run. can be used with any load balancing hardware.

There is a third method of load balancing, round-robin load balancing with Domain Name System (DNS). Round-robin DNS load balancing uses a lot of resources on the front-end Web servers, is slower than either load balancing software or hardware, and is not recommended for use with .

Preparing the Back-End Database Servers

To set up your back-end database servers, you must perform the following steps.

  • Install SQL Server 2000, Service Pack 3.

    You can use SQL Server 2000 Standard or Enterprise edition with . Be sure to install the latest service pack for SQL Server 2000. For more information about installing SQL Server, see the SQL Server 2000 documentation.

  • Set a secure password for your SQL Server administration account.

    You must know both the administrator user account and password to be able to connect between on the front-end Web servers and SQL Server on the back-end servers. It is recommended that you set a secure password for the administration account. If you are using Windows authentication (recommended), you should use a domain account with permissions to create databases in SQL Server. At a minimum you must grant the account Security Administrators and Database Creators roles. If you are using SQL Server authentication, this means that the "sa" account should have a secure password. For more information about setting the administrator user name and password, see the SQL Server 2000 documentation.

  • Configure the authentication method for connections between the Web servers and SQL Server.

    For better security in your server farm, it is recommended that you use Windows NT authentication, rather than SQL Server authentication, for connections between your front-end Web servers and the back-end database servers. Windows NT authentication uses a domain user account to control access to SQL Server, rather than storing credentials in the registry and passing them across the network as in SQL Server authentication.

You configure the authentication method for SQL Server by using the SQL Server Enterprise Manager.

Configure authentication for SQL Server

  1. On the back-end database servers, click Start , point to All Programs , point to Microsoft SQL Server , and then click Enterprise Manager .

  2. Click the plus sign (+) next to Microsoft SQL Servers .

  3. Click the plus sign (+) next to SQL Server Group .

  4. Right-click the SQL server name, and click Properties .

  5. In the Properties dialog box, click the Security tab.

  6. Under Authentication , select Windows only , and then click OK .

Preparing the Front-End Web Servers

To prepare your front-end Web servers for , you must configure them as Web servers. You must be running Internet Information Services (IIS) 6.0 on your Web servers, and you must set it to run in IIS 6.0 worker process isolation mode instead of IIS 5.0 isolation mode.

IIS is not enabled by default in . To make your front-end servers into Web servers, you must enable IIS.

Enable IIS and configure it to use IIS 6.0 worker process isolation mode

  1. Click Start , point to All Programs , point to Administrative Tools , and then click Manage Your Server .

  2. On the Manage Your Server page, click Add or remove a role .

  3. In the Preliminary Steps pane, click Next .

  4. In the Server Role pane, click Application server (IIS, ASP.NET) , and then click Next .

  5. In the Web Application Server Options pane, accept the default of ASP.Net and then click Next .

  6. In the Summary of Selections pane, click Next .

  7. Click Finish .

  8. Click Start , point to All Programs , point to Administrative Tools , and then click Internet Information Services (IIS) Manager .

  9. In Internet Information Services manager, click the plus sign (+) next to the server name, and then right-click the Web Sites folder and select Properties .

  10. In the Properties dialog box, click the Service tab.

  11. In the Isolation mode section, clear the Run WWW service in IIS 5.0 isolation mode check box, and then click OK .

    Note: The Run WWW service in IIS 5.0 isolation mode check box is only selected if you have upgraded to IIS 6.0 on from IIS 5.0 on Windows 2000. New installations of IIS 6.0 use IIS 6.0 worker process isolation mode by default.

Installing and Configuring

After you have prepared the back-end database and front-end Web servers, you can install and configure on the front-end Web servers. To install and configure on your front-end Web servers, you perform the following steps:

  • Install .

    You must install on each front-end Web server. Using the remote SQL Server option allows you to install without also installing Microsoft SQL Server 2000 Desktop Engine (Windows) (WMSDE).

  • Create the administration virtual server and configuration database.

    You only need to create the configuration database when you configure the first front-end Web server; for subsequent front-end servers, you can simply connect to the database.

  • Create and extend a virtual server.

    Before you can create sites, you must create a virtual server to contain them in IIS. You can create multiple virtual servers with different IP addresses, or host all of your sites using the same IP address and virtual server.

  • Create sites.

    Creating sites for users is the final step. You can also enable Self-Service Site Creation so users can create their own sites. For more information, see Configuring Self-Service Site Creation .

To perform these steps for a server farm, it is recommended that you use the command-line administration tool, Stsadm.exe. For more information about using Stsadm.exe, see Introducing the Administration Tools for Windows SharePoint Services .

Install with the remote SQL Server option

  1. Download STSV2.exe to your computer.

    You can download STSV2.exe from the Microsoft Web site.

  2. Run STSV2.exe to extract the installation files.

  3. When the installation starts, click Cancel .

  4. Click Start , and then click Run .

  5. In the Open box, type c:\folder\setupsts.exe remotesql=yes (where c:\folder is the path to the Setupsts.exe file on your local computer).

    For example, if you installed the US English version of STSV2.exe, then the folder is c:\program files\STS2Setup_1033.

  6. Click OK .

    The Setup program opens.

  7. On the End-User License Agreement page, review the terms, and then select the I accept the terms in the License Agreement check box, and then click Next .

  8. On the Type of Installation page, click Server Farm , and then click Next .

  9. On the Summary page, verify that only will be installed, and then click Install .

  10. Setup runs and installs .

After setup, the HTML Administration pages open so you can create the administration virtual server and configuration database. For a server farm environment, you must use the command-line administration tool to create the configuration database rather than HTML Administration. The host header ( -hh ) parameter is only available from the command line.

Note: The host header ( -hh ) parameter is a one-time-only configuration choice that you only need to use when creating the configuration database for a server farm. This parameter puts in the scalable hosting mode and only host named sites should be created in this configuration.

Create the administration virtual server and configuration database

  1. Open a command prompt window, and navigate to the \Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin folder.

  2. Run the following command to create the administration virtual server:

stsadm.exe -o setadminport -port <port> -admapcreatenew -admapidname <id for application pool> -admapidtype <configurableid/NetworkService/LocalService/LocalSystem> -admapidlogin <user account for the application pool> -admapidpwd <password>

Note that you can use any unused port between 1023 and 32767.
  1. Run the following command to create the configuration database:

stsadm.exe -o setconfigdb -ds <database server name> -du <database user> -dp <password> -dn sts_config -hh

**Note:** If you are using Windows authentication, you do not need to specify the *du* or *dp* parameter.

To connect to the configuration database from subsequent front-end Web servers, use the Set Configuration Database page in HTML Administration, or the following syntax:

stsadm.exe -o setconfigdb -ds <database server name> -du <database user> -dp <password> -dn sts_config -connect

Note: If you are using Windows authentication, you do not need to specify the du or dp parameter.

With the administration virtual server and configuration database in place, you can create the virtual server to provide sites for your users. Each front-end Web server needs at least one virtual server for Web sites. If you do not want to use the existing default Web site you can create a new virtual server by using the following steps.

Create a virtual server

  1. Click Start , point to All Programs , point to Administrative Tools , and then click Internet Information Services (IIS) Manager .

  2. Click the plus sign (+) next to the server name you want to add a virtual server to.

  3. Right-click the Web Sites folder, click New , and then click Web site .

  4. Click Next .

  5. In the Description box, type the description of your virtual server, and then click Next .

  6. In the Enter the IP address to use for this Web site box, click All Unassigned .

    Note: You can create multiple virtual servers by using IIS Host Headers with All Unassigned if necessary, but IP-bound virtual servers are not supported.

  7. In the TCP port this web site should use (Default: 80) box, type the port number to assign to the virtual server.

    You do not need to assign a host header, because the hosting is being handled through .

  8. Click Next .

  9. In the Path box, type or browse to the path on your hard disk where the site content will go.

  10. If you do not want to allow anonymous access to your virtual server, clear the Allow anonymous access to this Web site check box.

  11. Click Next .

  12. On the Permissions panel, select the permissions to use, and then click Next .

    The default permissions, Read and Run Scripts (such as ASP) , are recommended. The Execute (such as ISAPI applications or CGI) permission will be added automatically to the appropriate folders by .

  13. Click Finish .

For more information about creating virtual servers, see the Adding Sites topic in the Help system for Internet Information Services.

Now that the virtual server has been created, you can extend it with . You can use either the command line or HTML Administration pages to extend the virtual server.

Extend the virtual server from the command line

  1. Open a command prompt window, and navigate to the \Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin folder.

  2. Run the following command to extend the virtual server:

stsadm -o extendvs -url https://servername -ds <database server name> [-du <database user> -dp <password> -dn <database name> -ownerlogin <DOMAIN\user> -owneremail <email address> -ownername <display name> -donotcreatesite -apcreatenew -apidname <application pool name> -apidtype <configurableid/NetworkService/LocalService/LocalSystem> -apidlogin <app pool user account> -apidpwd <app pool password>

Be sure to use the donotcreatesite parameter when you extend the virtual server. Without this parameter, a site is automatically created when you extend the virtual server, and the site will not be affiliated with a host name.

Note that the du and dp parameters are not needed if you are using Windows authentication to connect to SQL Server. It is recommended that you create a new application pool to use for your virtual servers, so that they run in separate processes from the administrative virtual server. Use the same application pool for each server farm virtual server on each front-end Web server. This application pool should use a domain account, but it does not need to have database creation rights in SQL Server. The administration virtual server account will create any databases required.

Extend the virtual server using HTML Administration pages

  1. On the SharePoint Central Administration page click Extend or upgrade virtual server .

  2. On the Virtual Server List page, click the name of the virtual server to extend.

  3. On the Extend Virtual Server page, in the Provisioning Options section, select Extend and create a content database .

  4. In the Application Pool section, select either Use an existing application pool or Create a new application pool .

    Note: It is recommended that you create a new application pool for each virtual server, so that they run in separate processes. This application pool should use a domain account, but it does not need to have database creation rights in SQL Server. The administration virtual server account will create any databases required.

  5. If you selected Use an existing application pool , select the application pool to use. If you selected Create a new application pool , enter the new application pool name, user name, and password to use.

  6. In the Site Owner section, in the Account name box, type the user name for the site owner (in the format DOMAIN\username if the user name is part of a Windows domain group).

  7. In the E-mail address box, type the e-mail address that corresponds to the account.

  8. In the Database Information section, select the Use default content database server check box, or type the database server name and database name to use for a new content database.

  9. If you want to specify a path for the URL, in the Custom URL path box, type the path to use.

  10. If you are using quotas, select a template in the Select a quota template box of the the Quota Settings section.

  11. In the Site Language section, select the language to use.

  12. Click OK .

Creating Sites

After following the steps above, you are ready to create sites for your users. This is the last step in the process for setting up your server farm; after this step, you can start adding users and managing the sites.

If you are setting up the multiple host names model for your server farm, you need to create the mapping for the sites you will create for users. The following example shows one way to set up a test environment with multiple host named sites. In a real deployment, you would map the host names in the Domain Name System (DNS).

Add host names for the IP address and create sites

  1. Open the c:\WINNT\system32\drivers\etc\hosts file.

  2. Add the IP address for the virtual server that will host your sites, and then add the host names to use. By default, the IP address assigned to your server will be the IP address you enter into the hosts file. You can get this IP address by opening a command prompt window and running the IPCONFIG command.

    For example,

    111.11.111.11 site1.myserver.com

    111.11.111.11 user2.myserver.com

    111.11.111.11 site2.myserver.com

    111.11.111.11 team1.myserver.com

  3. Save and close the hosts file.

  4. Open a command prompt window, and navigate to the \Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin folder.

  5. Run the following command to create a site:

stsadm.exe -o createsite -url https://site1.myserver.com -ownerlogin <DOMAIN\user> -owneremail <email address> [-ownername <display name> -lcid <lcid> -sitetemplate <site template> -title <title> -description <description>]

  1. Repeat this step for every site you want to create.

Optionally, you may want to remove the original top-level Web site for the virtual server. To do so, use the following command line syntax:

stsadm.exe -deletesite -url https://servername

If you are setting up any of the other hosting models for your server farm, you can just create the sites.

Create a site

  1. Open a command prompt window, and navigate to the \Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin folder.

  2. Run the following command to create a site:

stsadm.exe -o createsite -url <url> -ownerlogin <DOMAIN\user> -owneremail <email address> -ownername <display name>

  1. Repeat this step for every site you want to create.

Next Steps

Your server farm is now set up to serve Web sites with multiple host names. You can start adding users and managing sites, or you can perform the following optional but recommended steps:

  • It is recommended that you help protect your administration virtual server either by using a firewall to block access or by using Secure Sockets Layer (SSL) for the port. For more information, see Configuring Authentication .

  • As your sites increase in number and size, you will want to be able to add content databases or change connections to the content databases. For more information about content databases, see content databases.