# $Id$ LoadModule gzip_module modules/mod_gzip.so ######################## ### responsibilities ### ######################## # --------------------------------------------------------------------- # use mod_gzip at all? mod_gzip_on Yes # (you can especially enable mod_gzip inside the central server # configuration but disable it inside some directories ot virtual # hosts by using this directive.) # --------------------------------------------------------------------- ###################################### ### statically precompressed files ### ###################################### # --------------------------------------------------------------------- # let mod_gzip perform 'partial content negotiation'? mod_gzip_can_negotiate Yes # (if this option is active and a static file is to be served in com- # pressed for, then mod_gzip will look for a static precompressed # version of this file with a defined additional extension - see next # directive - which would be delivered with priority. This would allow # for avoiding to repeatedly compress the same static file and thus # saving CPU time. # No dynamic caching of this file is provided; currently the user # himself is responsible for creating and updating the precompressed # file's content. # From version 1.3.19.2a mod_gzip automatically recognizes whether # a statically precompressed file is older than its uncompressed # original and in this case will serve the content of the original # file in uncompressed form - as to rather serve correct data than # outdated ones ...) # --------------------------------------------------------------------- # extension (suffix) for statically precompressed files mod_gzip_static_suffix .gz AddEncoding gzip .gz # (effect: see previous directive; this string will be appended to the # name of the original file. # be sure to configure the encoding 'gzip' for this extension as well, # because mod_gzip doesn't serve the content itself but simply generates # an Apache internal redirection to this URL. Therefore the remaining # Apache configuration is responsible for setting the 'Content-Encoding' # header properly ... # prior to version 1.3.19.2a this value was not configurable.) # --------------------------------------------------------------------- # automatic updates for statically precompressed files mod_gzip_update_static No # (if set to 'Yes', this directive (being new in version 1.3.26.1a) would # cause mod_gzip to automatically update an outdated version of any # statically precompressed file during the request, i. e. compress the # originally requested file and overwrite the precompressed variant # file with it! # for each automatic update of this type, mod_gzip will write a message # of the severity 'notice' into the Apache error_log. # while doing so, mod_gzip will directly read the original file's content. # therefore this content cannot be interpreted by any other Apache module # during the request. this might possibly not be what you want - hopefully # it will be what most users want, because it works fast this way. # use this configuration with a lot of care, and be sure that you don't # inadvertantly cause valuable files within the URL tree to be overwritten. # this isn't a feature to be used for mass hosting servers, especially # because mod_gzip might experience access control problems there - the # userid the Apache processes are running under need to have write access # to the precompressed files of all users, which may not automatically be # the case.) # --------------------------------------------------------------------- ################### ### bureaucracy ### ################### # --------------------------------------------------------------------- # display status for mod_gzip mod_gzip_command_version '/mod_gzip_status' # (defines an URL to display the status of mod_gzip; can be specified # individually for each installation and protected against access via # section for privacy reasons) # --------------------------------------------------------------------- # The status display will look like this: # mod_gzip is available... # mod_gzip_version = 1.3.26.1a # mod_gzip_on = Yes/No # and thus will provide information about # - mod_gzip being installed at the server and working correctly, # - which version has been installed and # - whether mod_gzip has been set 'active' for this Location # (-> mod_gzip_on) # --------------------------------------------------------------------- ####################### ### data management ### ####################### # --------------------------------------------------------------------- # Working directory for temporary files and the compression cache # if not specified, the following default values are used: # [Win32=c:\temp], [UNIX=/tmp] # mod_gzip_temp_dir /tmp # (This directory must already exist and the userid being used for # running the Apache server must have read and write access to this # directory. # Unlike other Apache directives an absolute path name must be specified # here; a relative value will not be interpreted relatively to ServerRoot. # This pastname must NOT be terminated with '/'. # For maximum performance this directory should be located on a RAM disk, # if the file system isn't already being cached efficiently # --------------------------------------------------------------------- # Save temporary work files [Yes, No] mod_gzip_keep_workfiles No # (one file per HTTP request - set to 'yes' for debugging purpose only!) # --------------------------------------------------------------------- ################## ### file sizes ### ################## # --------------------------------------------------------------------- # minimum size (in bytes) for files to be compressed mod_gzip_minimum_file_size 500 # (for very small files compression will produce only small absolute gains # [you will still save about 50% of the content, but some additional # 500 bytes of HTTP and TCP headers will always remain uncompressed], # but still produce CPU load for both client and server) # --------------------------------------------------------------------- # maximum size (in bytes) for files to be compressed mod_gzip_maximum_file_size 500000 # (for very large files compression may eventually take rather long and # thus delay the start of the transmission. # Furthermode a limitation at this point prevents the server from # producing output of unlimited size in case of some endless loop # inside a CGI script - or even trying to compress streaming data - # which might otherwise cause the creation of a temporary file of # any size and even fill up the whole hard disk. # On the other hand, compression will have a much more perceivable # subjective effect for large files ... so be sure to fine-tune this # according to your requirements.) # --------------------------------------------------------------------- # maximum size (in bytes) for files to be compressed in memory mod_gzip_maximum_inmem_size 60000 # (larger files will be compressed into the temp file directory; adapt # this value to your server's available main memory. # In mod_gzip 1.3.19.x larger values will automatically be limited to # 60000 because some operating systems are said to have problems # allocating more than 64 kb of memory at a time. # --------------------------------------------------------------------- #################### ### requirements ### #################### # (see chapter about caching for problems when using these directives.) # --------------------------------------------------------------------- # Required HTTP version of the client # Possible values: 1000 = HTTP/1.0, 1001 = HTTP/1.1, ... # This directive uses the same numeric protocol values as Apache does # internally mod_gzip_min_http 1000 # (By using this directive you may exclude old browsers, search engines # etc. from the compression procedure: if the user agent doesn't # declare itself capable of understanding at least the HTTP level # specified here, only uncompressed data will be delivered - no matter # what else it claims to be able to. The value of '1001' will especially # exclude Netscape 4.x. and a lot of proxy servers.) # --------------------------------------------------------------------- # HTTP methods to be handled # Possible values: 'GET', 'POST' or a list of both values. mod_gzip_handle_methods GET POST # (By using this directive you may particularly exclude POST requests # from the compression procedure. There are known cases where the # handling of these requests by previous mod_gzip versions could cause # problems. # Before version 1.3.19.2a this value was not configurable.) # --------------------------------------------------------------------- ############### ### filters ### ############### # --------------------------------------------------------------------- # which files are to be compressed? # # The order of processing during each of both phases is not important, # but to trigger the compression of a request's content this request # a) must match at least one include rule in each of both phases and # b) must not match an exclude rule in any of both phases. # These rules are not minimal, they are meant to serve as example only. # # phase 1: (reqheader, uri, file, handler) # ======================================== # (see chapter about caching for problems when using 'reqheader' type # filter rules.) # NO: special broken browsers which request for gzipped content # but then aren't able to handle it correctly mod_gzip_item_exclude reqheader "User-agent: Mozilla/4.0[678]" # # JA: HTML-Dokumente mod_gzip_item_include file \.html$ # # NO: include files / JavaScript & CSS (due to Netscape4 bugs) mod_gzip_item_exclude file \.js$ mod_gzip_item_exclude file \.css$ # # YES: CGI scripts mod_gzip_item_include file \.pl$ mod_gzip_item_include handler ^cgi-script$ # # phase 2: (mime, rspheader) # =========================== # YES: normal HTML files, normal text files, Apache directory listings mod_gzip_item_include mime ^text/html$ mod_gzip_item_include mime ^text/plain$ mod_gzip_item_include mime ^httpd/unix-directory$ # # NO: images (GIF etc., will rarely ever save anything) mod_gzip_item_exclude mime ^image/ # --------------------------------------------------------------------- # In fact mod_gzip is checking only the first 4 characters of the 1st # operand (in case of uri even the first 2 characters only, as to # allow for values like url). # --------------------------------------------------------------------- # The table for mod_gzip_item rules (include and exclude) cannot contain # more than 256 entries; when this number is exceeded mod_gzip will # output the message "mod_gzip: ERROR: Item index is full" # and report a configuration error to the Apache server. # --------------------------------------------------------------------- # The directive values described here are meant to describe the requests # elected for compression most exactly. # Especially for the mime rules it has to be made clear that the HTTP # header 'Content-Type' (that will be checked by mod_gzip for this rule) # in some cases may contain not only a MIME type but additionally a # character set description (charset) as well. # If this is the case for the requests to be handled then you need to # remove the '$' char at the end of the corresponding value so that now # only the prefix of this value will be tested for matching. # --------------------------------------------------------------------- ########################## ### transfer encodings ### ########################## # --------------------------------------------------------------------- # Allow mod_gzip to eliminate the HTTP header # 'Transfer-encoding: chunked' # and join the chunks to one (compressable) packet mod_gzip_dechunk Yes # (this is required for handling several types of dynamically generated # contents, especially for CGI and SSI pages, but also for pages produced # by some Java Servlet interpreters. # --------------------------------------------------------------------- ############### ### logging ### ############### # --------------------------------------------------------------------- # Extended log format (for testing the compression effect) LogFormat "%h %l %u %t \"%V %r\" % # vim: filetype=apache ts=4 sw=4 et