Serving the Masses with Windows NT

The phenomenal popularity and relative simplicity of the Web have resulted in quite a number of web server products. The basic HTTP protocol is so simple that the products must differentiate themselves in user interface features and advanced functions. This article is the first of two which will provide brief case studies of representative HTTP servers. Next issue, we will continue with two more servers.

by Jim Buyens

Windows NT, Microsoft's most powerful version of Windows, is a powerful and effective platform for providing Internet services. This is true despite the fact that most Internet services have been developed and deployed on Unix.

The popularity of the World Wide Web has made HTTP servers equally interesting to system administrators and content providers alike. This article demonstrates the installation of two such servers.

The case studies in this article take installation only to the point of displaying simple HTML pages. In coming issues advanced HTTP functions will be covered.

EMWAC HTTPS

The European Microsoft Windows NT Academic Centre (at the University of Edinburgh, Scotland) distributes this software free of charge. This was one of the first HTTP servers for Windows NT and is still commonly used. A fully-supported commercial version also exists.

Netscape Communication Server

In addition to being the ``official'' companion product to the Netscape Navigator client, this server software has been a leader in security- related features. (Netscape Commerce Server provides even more security features, including encryption of data transmitted between client and server.)

Preparing for HTTP Server Installation

Before jumping into the installation process for any of these servers, you should complete the following steps. Set up a ``www'' CNAME for the server. Generally, ``www'' won't be the name of the computer that runs the primary HTTP service at your site; ``www'' will be an alias you define in DNS (the Domain Name System) with a CNAME record in the primary zone database. For example, the second line below establishes www.interlakken.com as an alias for earring.interlakken.com. (An earlier $ORIGIN command established ``interlakken.com'' as the default domain. Earring is the server's real host name.)

earring      IN      A       130.131.90.111
www          IN      CNAME   earring 

Stop any other HTTP servers running on the same computer. This avoids port conflicts and other problems.

Choose a drive and, if you like, a directory where the server's HTML files will reside. Choose a drive that uses the NTFS file system, avoid the system drive, and avoid the drive where the HTTP server's software will reside.

Typically, many users have access to portions of the server's HTML data directory; each user may have access to a personal ``home page'' area, for example. It's a good policy to isolate such areas as much as possible from operating system and other software areas.

Decide where you want the HTTP server's software to reside. Choose a drive that users never have access to.

Select a drive where the HTTP server's log files will reside. Don't choose the system drive---choose a drive that won't affect system operation if unexpectedly large activity (or oversight) causes the log file to consume all space on the drive.

Installing and Configuring EMWAC HTTPS

You can obtain the EMWAC HTTPS service from EMWAC at * http://www.emwac.ac.uk, or from the Microsoft Windows NT Resource Kit version 3.5 or 3.51. If you install from the Windows NT Resource Kit, first install the Resource kit, then change to the \RESKIT\EMWAC directory.

Copy the following files to the server's <systemroot>\SYSTEM32 directory:

HTTPS.EXE
HTTPS.CPL
HTTPS.HLP
MSVCRT20.DLL

Be sure not to replace a newer version of MSVCRT20.DLL, if one exists.

In a command shell window, change to the <systemroot>\SYSTEM32 directory and issue the following commands:

If information from the https -version or https -ipaddress commands isn't correct, obtain the desired version or correct your TCP/IP network settings before continuing.

If the results from the prior steps are correct, issue the command

https -install 

Return to the Windows NT GUI, open the Control Panel, and double-click the icon titled ``HTTP Server''. The dialog shown in Figure 1 will be displayed.

In the text box titled ``Data directory:'' enter the drive and directory where your HTML files reside. For now, allow the other fields to retain their default values. If you haven't created a directory for HTML files yet, do it now. The data directory should be on an NTFS drive.

If the data directory resides on another server, specify a UNC (Universal Naming Convention) name rather than a drive letter. Drive letter assignments disappear when you log off the server console.

Click OK to save the HTTP Server settings.

Double-click the Control Panel's ``Services'' icon. Highlight the line ``EMWAC HTTPS Server'' and click the Start button. The status of the EMWAC HTTPS Server should change to ``Running''.

Ensure that there is at least one HTML file in the HTTP data directory, and that you know it's name.

From any computer on the same network as the server, start a web browser and enter the following URL:

http://<server name>/<HTML file name> 

where <server name> is the server's DNS name, ``hosts'' file name, or IP Address. <HTML file name> is a file name in the server's data directory.

The HTTP server resolves directory paths in URLs relative to the HTTP data directory. Also, in Unix fashion, slashes, rather than backslashes, indicate directory names. Consider the following example:

If the HTTP server won't start, check that all required files are in the <systemroot>\SYSTEM32 directory and that no other services (such as other HTTP servers) are running on TCP port 80. As always, note any alerts that appear in dialog boxes or in the Windows NT Event Log.

Most problems you encounter are likely to be connectivity issues. If you can ping the server and the HTTP service is running you should be able to retrieve Web pages.

Here are the functions of the remaining controls in the HTTP Server's Control Panel dialog.

TCP/IP port.
Controls the TCP/IP port number the HTTP server will use. The HTTP standard and industry default are port 80.
File extension to MIME type mapping.
The HTTP server uses MIME file type strings to inform the browser what kind of file the server is sending. The EMWAC HTTP server derives this information from the filename extension. See the sidebar for a list of the default MIME type assignments.
Log HTTP transactions.
Checking this box causes the HTTP server to write a log record every time it delivers a file. The log is a plain ASCII file named HSyymmdd.LOG where yymmdd is the current date. The log is useful for determining how often users are hitting individual pages.
Log file directory.
This specifies the directory where the HTTP server will write the log file. The <systemroot> directory, which is the default, isn't a good choice. Write log files and other miscellaneous files to another drive less affected by running out of disk space.
Permit directory browsing.
If this box is checked, and if a user submits a URL that specifies no filename, and if no default.htm file is present, then the HTTP server will present a clickable list of filenames in the specified directory.

The EMWAC server was the first HTTP server available for Windows NT. It provided, and continues to provide, a simple, no-frills introduction to configuring and operating a web server. Given its simplicity, however, the EMWAC server is easily outgrown. A popular and more powerful alternative are the web servers available from Netscape.

Installing and Configuring Netscape Communication Server

The following steps will install an evaluation copy of Netscape Communication Server.

Obtain a copy of the software from Netscape's web site at *www.netscape.com.

Create a temporary directory, switch to it, then expand the downloaded archive.

Start SETUP.EXE.

Click the ``Continue'' button on the Welcome dialog.

Choose an installation directory for the Netscape program files. For maximum security, don't place this directory on any drive that users can access. Click ``Continue''.

Setup will copy a number of files to various directories, and will then ask if the server's host name already exists in DNS. Click ``DNS Configured'' or ``No DNS Entry'' as the case may be.

If you click ``DNS Configured'', Setup will prompt you for the server's DNS name. The default is the name specified in the Control Panel's ``Network, TCP/IP Protocol, Configure, DNS'' dialog. You should override this if you've created a ``www'' CNAME entry in DNS. Click ``Continue''.

Click OK at the screen informing you that Setup is starting a temporary web service.

At this point in the installation, the user interface switches from Windows NT dialogs to HTML forms. Setup installs a copy of Netscape Navigator for this purpose. Netscape's server software uses HTML forms for administration; this presents a more awkward interface than native Windows NT dialogs, but it does provide complete remote administration.

Click ``Accept'' at the Netscape License Agreement dialog.

The temporary Netscape server will display the HTML form shown in Figure 2. Notice the randomly-chosen port number displayed in the Netsite field. Click ``Start the Installation'' to continue.

Netscape Navigator displays the following HTML forms without security---that is, without encrypting the data. Since the browser and the temporary HTTP server are running on the same physical machine, this shouldn't be a problem. Uncheck ``Show This Alert Next Time,'' then click the ``Continue'' button.

The next HTML form, shown in Figure 3, is a jump point for three dialogs required to configure the server: Server Config, Document Config, and Admin Config.

After making any changes to this form, click the button labeled ``Make These Changes''.

The Document Configuration form appears in Figure 5. The example will use the following options:

After choosing your own options, click the button labeled ``Make These Changes''.

The Admin Config form appears in Figure 6. The example will use the following options:

Several instances of the Netscape Httpd server can run on a single computer---and, in fact, this is the norm. The simplest configuration is to run two instances: one for normal users and one for administration. Having a separate administration server helps to keep users away from system functions, and it allows the administration server to perform control duties such as stopping and restarting user service. Each instance of the server must, of course, run on a separate port not used by any other service on the same computer.

When you're done making changes to this form, click the ``Make These Changes'' button.

After you've completed all three forms, Netscape Httpd will display a configuration summary page like that shown in Figure 7. If you need to make any corrections click the Server Config, Document Config, or Admin Config button as appropriate. Once the summary page is satisfactory, click the ``Go for it!'' button.

The setup process will display a number of status messages in the browser window as it installs the user and administrative instances of Httpd. After it successfully completes, it will display the ``Welcome'' page shown in Figure 8.

From the ``Welcome'' page, click ``Administer the new server'' to display the Server Manager Page shown in Figures 9, 10, and 11. Note this page's URL carefully; it will be your starting point for most server administration tasks. Pull down the Bookmarks menu and select Add Bookmark to save it.

Pull down Netscape Navigator's File menu, select New Window, and specify the base URL for your server. For this exercise, the base URL is:

http://www.interlakken.com 

What appears next in the Netscape Navigator window is the current home page for the server. Setup will create a default home page.

At this point the temporary HTTP server will have exited and both instances of Netscape Httpd will be running your computer. To confirm this, go to Control Panel, double-click ``Services'', and find the two entries ``Netscape Administration'' and ``Netscape Httpd-80''. Both should be running as shown in Figure 12.

The two installations discussed so far are sufficient to get a web server up and running, at least to the extent of serving up simple web pages. Simple pages are the predominant content of the Web but, as should be apparent from Figures 9 through 11, full-function web servers provide many other management and application services as well. The third article in this series will introduce some of these.


Jim Buyens is the senior PC-LAN administrator for AG Communication Systems, a leading provider of telecommunications switching equipment and software. An early champion of TCP/IP applications and connectivity, he designed a coast-to-coast corporate network with over 25 Windows NT servers and 1,000 client PCs. His personal home page at * http://www.primenet.com/~buyensj is widely regarded as a key resource for Windows NT Web server and system administation tools. Jim is the webmaster at www.agcs.com, and can be reached at buyensj@primenet.com.

Excerpted by permission of Addison-Wesley Publishing from Building Net Sites with Windows NT: An Internet Services Handbook, (ISBN 0-201-47949-4) (c) 1995 Jim Buyens, $34.95. To order call 1-800-822-6339.