9.2. CachingAnother reason for using a proxy server is to cache data from the Web to save the bandwidth of the world's sadly overloaded telephone systems and therefore to improve access time on our server. The directive CacheRoot, cunningly inserted in the Config file shown earlier, and the provision of a properly permissioned cache directory allow us to show this happening. We start by providing the directory ... /site.proxy/cache, and Apache then improves on it with some sort of directory structure like ... /site.proxy/cache/d/o/j/gfqbZ@49rZiy6LOCw. The file gfqbZ@49rZiy6LOCw contains the following: 320994B6 32098D95 3209956C 00000000 0000001E X-URL: http://192.168.124.1/message HTTP/1.0 200 OK Date: Thu, 08 Aug 1996 07:18:14 GMT Server: Apache/1.1.1 Content-length: 30 Last-modified Thu, 08 Aug 1996 06:47:49 GMT I am a web site far out there Next time someone wants to access http://192.168.124.1/message, the proxy server does not have to lug bytes over the Web; it can just go and look it up. There are a number of housekeeping directives that help with caching. 9.2.1. CacheRootCacheRoot directory Default: none Server config, virtual host Sets the directory to contain cache files -- must be writable by Apache. 9.2.2. CacheSizeCacheSize size_in_kilobytes Default: 5 Server config, virtual host This directive sets the size of the cache area in kilobytes. More may be stored, but garbage collection reduces it to less than the set number. 9.2.3. CacheGcIntervalCacheGcInterval hours Default: never Server config, virtual host This directive specifies how often, in hours, Apache checks the cache and does a garbage collection if the amount of data exceeds CacheSize. 9.2.4. CacheMaxExpireCacheMaxExpire hours Default: 24 Server config, virtual host This directive specifies how long cached documents are retained. This limit is enforced even if a document is supplied with an expiration date that is further in the future. 9.2.5. CacheLastModifiedFactorCacheLastModifiedFactor factor Default: 0.1 Server config, virtual host If no expiration time is supplied with the document, then estimate one by multiplying the time since last modification by factor. CacheMaxExpire takes precedence. 9.2.6. CacheDefaultExpireCacheDefaultExpire hours Default: 1 Server config, virtual host If the document is fetched by a protocol that does not support expiration times, use this number. CacheMaxExpire does not override it. 9.2.7. CacheDirLevels and CacheDirLengthCacheDirLevels number Default: 3 CacheDirLength number Default: 1 Server config, virtual host The proxy module stores its cache with filenames that are a hash of the URL. The filename is split into CacheDirLevels of directory using CacheDirLength characters for each level. This is for efficiency when retrieving the files (a flat structure is very slow on most systems). So, for example: CacheDirLevels 3 CacheDirLength 2 converts the hash "abcdefghijk" into ab/cd/ef/ghijk. A real hash is actually 22 characters long, each character being one of a possible 64 (26), so that three levels, each with a length of 1, gives 218 directories. This number should be tuned to the anticipated number of cache entries (218 being roughly a quarter million, and therefore good for caches up to several million entries in size). 9.2.8. CacheNegotiatedDocsCacheNegotiatedDocs Default: none Server config, virtual host If present in the Config file, this directive allows content-negotiated documents to be cached by proxy servers. This could mean that clients behind those proxys could retrieve versions of the documents that are not the best match for their abilities, but it will make caching more efficient. This directive only applies to requests that come from HTTP/1.0 browsers. HTTP/1.1 provides much better control over the caching of negotiated documents, and this directive has no effect on responses to HTTP/1.1 requests. 9.2.9. NoCacheNoCache [host|domain] [host|domain] ... This directive specifies a list of hosts and/or domains, separated by spaces, from which documents are not cached. Copyright © 2001 O'Reilly & Associates. All rights reserved. |
|