Get More Out of Your Pipe with Apache and mod_gzip - Page 2

 By Carla Schroder
Page 2 of 2   |  Back to Page 1
Print Article
Continued From Page 1

This is the tedious part, because Apache refuses to read your mind, and insists that you define every last thing in httpd.conf. First, tell Apache to load your nice new mod_gzip module; put this line with the other LoadModule entries:

LoadModule gzip_module modules/mod_gzip.so

Next, find the AddModule lines, and add:

AddModule mod_gzip.c 

Now you can stuff all the mod_gzip directives into its own IfModule section:

<IfModule mod_gzip.c>
#turn mod_gzip on. You can disable it in individual virtual hosts, 
#if you wish
mod_gzip_on                    Yes      
#this tells mod_gzip to re-use compressed files, instead
#of compressing them for every request                                      
mod_gzip_can_negotiate   Yes   
#assemble all the bits of a dynamically-generated page,
#and compress it as one page                                         
mod_gzip_dechunk            Yes  
#there's no point in compressing small files (bytes)                               
mod_gzip_minimum_file_size  600       
#sometimes scripts create loops- you
#don't want mod_gzip to get stuck, and create
#an enormous file that eats your hard drive
#and crashes the server
mod_gzip_maximum_file_size  100000      
#maximum size of file in memory                                 
mod_gzip_maximum_inmem_size 100000    

#temp files- say yes only for debugging                                     
mod_gzip_keep_workfiles     No                                             
mod_gzip_temp_dir           /usr/local/apache/gzip 

# define the required HTTP version of the client, to
#automatically weed out requests from antique browsers,
#proxy servers, search engines, bots, and other entities
#that cannot handle compression. Only uncompressed
#pages will be served to these. 
#1000 = HTTP/1.0, 1001 = HTTP/1.1
mod_gzip_min_http             1001

#exclude these from compression, because they are
mod_gzip_handle_methods GET POST 

#now the fun stuff- tell which file and mime types
#you want compressed                        
mod_gzip_item_include       file \.html$ 
mod_gzip_item_include       file \.html$
mod_gzip_item_include       file \.shtml$
mod_gzip_item_include       file \.shtm$                                   
mod_gzip_item_include       file \.txt$                                    
mod_gzip_item_include       file \.jsp$                                    
mod_gzip_item_include       file \.php$                                    
mod_gzip_item_include       file \.pl$   
mod_gzip_item_include       mime ^text/.*                                  
mod_gzip_item_include       mime ^application/x-httpd-php                  
mod_gzip_item_include       mime ^httpd/unix-directory$                    
mod_gzip_item_include       handler ^perl-script$                          
mod_gzip_item_include       handler ^server-status$                        
mod_gzip_item_include       handler ^server-info$   
mod_gzip_item_exclude       file \.css$                                    
mod_gzip_item_exclude       file \.js$                                     
mod_gzip_item_exclude       mime ^image/.*   

Naturally, you will want to refine this for your own needs. Find the mod_gzip.conf.sample file on your system; it's a detailed reference for mod_gzip options. When you're finished, restart Apache. And that's pretty much all there is to it- a few minute's work for an immediate large payback. If only more things in life worked like this.

Browser Language Magic
The author of mod_gzip, Michael Schrpl, has configured his Web site to recognize the language setting in your browser, and to deliver either German or English pages accordingly. In Mozilla/Firefox/Netscape, edit -> preferences ->navigator -> languages. In Opera, file -> preferences -> languages. In other browsers, eh, you'll figure it out.


This article was originally published on Jun 23, 2004
Get the Latest Scoop with Networking Update Newsletter