Microsoft Proxy Server 2.0 provides a Web-caching feature in addition to its firewall function. By implementing the Cache Array Routing Protocol (CARP), Proxy Server supports cache cluster and cache hierarchy for better performance, load balancing, and fault tolerance. When you use Proxy Server for your caching servers, you can put multiple servers into a cluster or array or construct multilayered arrays that you base on the size of your network and the number of branch offices.

Setting up an array is simple. After you set up two proxy servers, you join the second proxy server to the first proxy server to form an array. If you have more proxy servers, you just add them to the array. You can create a DNS record for the array that points to the IP addresses of array members. A browser using the array DNS name in its proxy server setting can connect to a member server through the DNS round-robin function. (To learn more about the DNS round-robin function, see Douglas Toombs, "Load Sharing for Your NT Web Server," April 1998.) If the connected server doesn't have a requested object in its local cache, it can route the request to the server that has the cached object in the local array or forward the request to an upstream array via CARP. You can also designate a backup route by which requests can travel to another array or the direct Internet connection if the parent array isn't reachable. Proxy Server can synchronize proxy server configuration among array members.

Proxy Server supports both passive and active caching. Cached objects associate with a Time to Live (TTL) based on the expiration time of the original or source object. An object's TTL value specifies how long the proxy server will cache the object. In addition to the cache expiration policy that you can choose for passive and active caching (e.g., more update checks, more cache hits, more prefetching, less prefetching, equal importance), you can customize the TTL value in the advanced cache policy. For example, you can use TTL=0 (i.e., no time limit) for all objects unless the original object specifies expiration. You can define a certain percentage of the original object's age as the TTL value. For example, if an object's age is 10 hours and you specify TTL to be 20 percent of the object's age, the TTL value of the object will be 2 hours. You can specify a minimum and maximum TTL value so that an object's TTL always falls between the minimum and maximum TTL. Screen A shows the default settings in Proxy Server's Advanced Cache Policy dialog box. In the advanced cache policy, you can define the maximum size of any object that the server caches. You can also define how to use expired objects if the proxy server can't reach the original Web server for updates (e.g., use expired objects for up to 50 percent of the original TTL). The cache filter in the advanced cache policy lets you force the proxy server to always cache or never cache certain URLs. Proxy Server supports FTP caching for FTP read or download and uses only NTFS drives for HTTP and FTP caching.

Proxy Server supports reverse proxy caching for Web publishing. You can define a mapping table to map a specific Web server request to a specific downstream server; an example would be to map http://www.acme.com to http://webserver.acme.com. Proxy Server offers a comprehensive logging function, which can log detailed caching operations to a file or SQL or ODBC database for your analysis of your users' Web activities. Proxy Server uses an ACL to define which Windows NT users and groups can use Proxy Server Web caching. Proxy Server also lets you add the proxy server setting for the browser in its client setup file. When a user installs the proxy client, the setup will automatically configure the proxy setting in the user's browser.