Luckily, plenty of well-known vendors have ported their corporate-class Web servers to the Linux platform, and other established vendors have beefed up the popular -- and proven -- Linux-based Apache Web server. These products have the feature sets and robustness necessary to catapult them into the enterprise. C2Net's Stronghold and IBM Corp.'s HTTP Server, for example, are based on Apache and can support all available Apache add-ons, including WebDAV (mod_dav), SNMP (mod_ snmp) and LDAP (mod_ldap).
We invited Web server vendors C2Net (now owned by Red Hat), IBM, iPlanet E-Commerce Solutions (a Sun-Netscape Alliance), Roxen Internet Software and Zeus Technology to send us their latest and greatest Linux-based Web servers for evaluation in our partner labs at Schneider National, in Green Bay, Wis.
Considerations Beyond Speed
Once we had the products in our hands we put them to the test -- not just from a performance perspective but also from the viewpoint of an administrator or a developer. While we know that speed is of the essence, the choice of a Web server should never be based solely on how many HTTP gets per second the software can handle. If you have to hack in support for other necessary features, the result will likely be degraded performance. When you choose a Web server, client-authentication models, development-language support, publishing features, and the method of configuration and management should be just as important to your decision as performance numbers. For that reason, we also configured each of the Web servers for Java servlet support -- no small feat for some of them!
The Web servers we tested provide what we consider the bare necessities: basic client authentication; CGI support; nonblocking DNS, which offers the ability to resolve IP addresses to domain names when logging without requiring that the Web server wait for a response before returning a request to the client; static content caching; custom HTTP headers; customizable document footers and error messages; and support for SSL (Secure Sockets Layer) and HTTP 1.1. But the similarities stop there. The more robust Web servers provide load-balancing; SNMP support; the ability to limit bandwidth to a specific Web server instance, sometimes down to a per-session basis; options for many client-authentication models, from LDAP to client certificates; and other advanced features.
Development paradigm support also varies widely, from a complete J2EE (Java2 Enterprise Edition) container implementation (in iPlanet Web Server 6.0), to support of PERL and PIKE (in Roxen WebServer), to almost no out-of-the-box support for developers (C2Net Stronghold and IBM HTTP Server). You'll need to determine up front what your current and future development needs will be before you make a decision. Roxen's and IBM's products support WebDAV (Web-based Distributed Authoring and Versioning), a set of extensions to the HTTP 1.1 protocol that allows collaborative editing and management of files on remote servers. Although WebDAV does not come stock with C2Net Stronghold, you can install support for it if you so desire. The Web servers from iPlanet, Roxen and Zeus also provide native support for a host of relational databases, which provide excellent performance boosts when delivering dynamic content.
Our performance tests showed that an out-of-the-box configuration is just not acceptable for high-volume sites. Most of the products' documentation provides a section devoted specifically to performance tuning; we strongly suggest you read this information and tune your Web server appropriately. In several tests we saw performance double and even triple after tweaking a few values here and there -- that kind of increase is nothing to sneeze at. In the IBM HTTP Server install, the maximum number of current client connections was set at 150, not acceptable for a high-volume site. We raised that figure to its maximum of 256 (the hard-limit for Apache unless you want to recompile) and performance increased dramatically. In iPlanet's installation we changed the RqThrottle and KeepAliveMaxCount values in the magnus.conf (iPlanet's configuration file), which also controls the maximum number of simultaneous requests and the maximum number of connections to keep alive, respectively. Zeus' Web server rose to the top of the heap in this category, performing more than 3,000 HTTP gets per second. Stronghold and Roxen WebServer hovered around 1,000 gets per second, while the products from IBM and iPlanet averaged 1,500 to 2,000 gets per second.

A Web server's performance is tied closely to its threading model. IPlanet uses a multiprocess, multithreaded model; Zeus and Roxen sport a multithreaded model; the others are still based solely on a preforking model, creating a new process to handle each request as opposed to creating a new thread. Process creation is resource-intensive while creating a new thread is cheap; those Web servers that use a multithreaded model are sure to outperform those that do not. Because Stronghold and IBM HTTP Server are both based on Apache 1.3.x, they still implement a preforking model. Apache 2.0 offers a multiprocess, multithreaded option, so we would expect performance to increase significantly in these products when they migrate to an Apache 2.0 base.
Configuration and management of these products proved to be almost universally robust. All the products we tested provide the ability to configure and manage the Web server from the command line or a GUI, accessible via a Web browser. Several products -- those from C2Net, iPlanet, Roxen and Zeus -- offer the ability to monitor server performance via the GUI. Each provides important performance-based statistics that can aid in troubleshooting or fine-tuning the server's performance in areas such as the number of current requests, cache hits and misses, total throughput, and number of open connections. The only real difference between the products providing this feature is that some of the monitoring was more visually appealing: Zeus and Roxen use graphics and colorful displays while Stronghold and iPlanet offer simple textual displays.
Protocol support is another area in which there is disparity. Although SSI (server-side includes), SSL and HTTP 1.1 are supported in every product, only those products from IBM, iPlanet and Zeus provide support for SNMP. This type of support is almost a must-have for corporate-class installations, since a single network-management system throughout the enterprise is generally desired. The SNMP support offered by C2Net, IBM, iPlanet and Zeus provide typical SNMP monitoring support, including counts for packets, requests, page downloads and server status.
After examining all the possibilities, we gave iPlanet's Web Server 6.0 our Editor's Choice award. Combining a complete J2EE container, a robust management and configuration interface, and features such as load-balancing and bandwidth management with impressive performance, iPlanet's WebServer 6.0 is an excellent choice for a corporate-class Web server.
|
 |