Scalable Hosting Solution: An IIS Virtual Hosting ISAPI Filter Sample Application
On This Page
Internet Service Providers (ISPs) are often interested in providing their customers with free or low-cost Web hosting services and domain parking as part of the services that customers receive with an Internet access account. Some ISPs also offer free Web sites, which are subsidized by advertisements that are displayed as clients access various Web pages. Requests to these Web sites are typically very low. When these Web pages are static HTML pages, IIS can host thousands of static HTML pages but is limited to a practical limit of approximately 5,000 sites per box due to current metabase expansion constraints. The Scalable Hosting Solution (SHS) sample application enhances the ability of IIS to host thousands of sites using an ISAPI filter that provides an alternate approach to configuring individual sites in the metabase.
The SHS ISAPI filter uses a single Web site and virtual root (vroot) in IIS and rewrites the URLs of incoming requests and maps the requests to individual subdirectories under that vroot. Several forms of remapping are supported, including vanity sites (e.g. http://www.bigisp.com/davidjones) and three-tier domains (e.g. http://www.davidjones.com). Site content and metabase configuration for each site are stored in separate directories. This structure provides security because users are only able to access metabase configuration through COM interfaces and cannot directly edit metabase configuration files. SHS also offers high scalability because the ISAPI filter locates the site content and metabase configuration via a mapping algorithm, instead of through the metabase. Finally, SHS prevents the problems associated with too many files in a directory as the number of site directories increase because the site content and metabase configuration directory is created under a three-tier hierarchical directory tree, and the location of files within a directory tree depends upon the first three letters of the site name.
SHS includes example administrative Web pages that ISP can customize to provision and administer SHS-based Web sites. Several COM components are provided that are used by the sample ISP administration and user administration ASP pages. These COM components may also be used for other programs or scripts. ISPs deploying SHS can integrate the ASP pages and COM components into existing administration applications or customize the sample to their own requirements, such as matching the application's look and feel to the rest of the ISP's site or integrating SHS with billing and provisioning systems.
The IIS Scalable Hosting Solution contains the following components:
ISAPI Filter—Written in C++, the ISAPI filter intercepts incoming http requests and reformats the URL to a URL, which is mapped to the site's subdirectory under a single vroot. The ISAPI filter then sends the request back to IIS.
COM Components—Written in Visual Basic, the COM components encapsulate commonly used SHS administrative tasks. The COM components are accessed through an interface by the sample administration ASP pages or through custom ASP pages or scripts written by the administrator.
Sample Administration Application—Written in VBScript, the sample administration application is an ASP application that provides a fully-functional example to use the SHS filter in an ISP scenario. The sample provisions new Web sites using a template-based approach to simplify site configuration. The user administration application allows users to upload and modify content on their site.
This application is provided to customers 'as-is' with no support from Microsoft. The terms and conditions of using SHS are specified in the End-User-License-Agreement (EULA), which is displayed on installation and must be accepted by the user before using the application. Source code for the ISAPI filter, COM objects and ASP pages is provided in the sample and may be used by customers to maintain and customize the application to their needs as indicated in the EULA. Please send comments and suggestions about the SHS Application to email@example.com.
Make sure your server meets the installation requirements before proceeding: SHS must be installed on a Windows 2000 server configured with Internet Information Server 5.0. You should also provide sufficient local storage for customer Web site content.
Open the setup application, SHS_10.exe, and click Yes to install SHS on your server.
Read the End User License Agreement, and click Yes to proceed with installation.
When prompted to enter the hosting location, type the path of the directory where customer Web site files will be stored.
When prompted to enter the tools location, type the path of the directory where the SHS components and application files will be stored.
When the setup program finishes, the "Installation Successful" dialog is displayed.
Open the command prompt, and change your current directory to the SHS tools location entered during setup.
Enter the following command at the command prompt:
install.wsf "hostname" "ipaddress" "port"
hostname = the DNS name for the hosting site (e.g. www.greatisp.com)
ipaddress = the site's IP address
port = the IP port number that the site is bound to
Install.wsf registers components, create the administration Web sites, and create content and configuration directories for customer Web pages.
Configure DNS entries for your server and Web sites, as required by your network environment.
The Administration site URL is http://hostname/admin.htm, where hostname is the DNS name for the hosting site (e.g. http://www.greatisp.com/admin.htm).