il suffit d'éditer le fichier de config d'apache (voir la doc en fct des distribs)
sur ma gentoo avec apache 2.2 le fichier est situé dans /etc/apache2/modules.d/00_default_settings.conf

 AddOutputFilterByType DEFLATE text/html text/plain text/xml
 BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch ^Mozilla/4\.0678 no-gzip
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 Header append Vary User-Agent env=!dont-vary

cela sort de la doc Apache biensur. Regardons ce que chaque ligne fait:

  • AddOutputFilterByType ..., cette ligne active la compression mod_deflate pour les 3 content types suivant text/html, text/plain et text/xml. ça évite de compresser les doc, images, et fichier multimédia lorsqu'ils sont demandés.
  • BrowserMatch ..., ces trois lignes empêche mod_deflate d'envoyé du contenu compressé à quelques buttineurs dont on sait qu'ils n'acceptent pas la compression.
  • Header append ..., cette ligne fait que la compression et les proxys vont fonctionner ensemble sans problèmes.

Apres Avoir ajouté ces lignes il ne reste plus qu'a redémarrer Apache.

pour tester la compression (avant & après) il y a ce genre de site : http://www.whatsmyip.org/mod_gzip_t... ou telnet :) ouvrir la connexion puis tapper "HEAD / HTTP1.1" puis deux fois Entrée résultat sans compression :

 telnet A.B.C.D 80
 Trying A.B.C.D...
 Connected to tarhu.
 Escape character is '^]'.
 HEAD / HTTP1.1
 
 HTTP/1.1 200 OK
 Date: Sun, 16 Sep 2007 17:34:12 GMT
 Server: Apache
 Last-Modified: Sun, 01 Jul 2007 01:24:36 GMT
 ETag: "74288-1df-93463d00"
 Accept-Ranges: bytes
 Content-Length: 479
 Connection: close
 Content-Type: text/html
 

résultat avec compression :

 telnet A.B.C.D 80
 Trying A.B.C.D...
 Connected to tarhu.
 Escape character is '^]'.
 HEAD / HTTP1.1
 
 HTTP/1.1 200 OK
 Date: Sun, 16 Sep 2007 17:32:00 GMT
 Server: Apache
 Last-Modified: Sun, 01 Jul 2007 01:24:36 GMT
 ETag: "74288-1df-93463d00"
 Accept-Ranges: bytes
 Content-Length: 479
 Vary: Accept-Encoding,User-Agent <<---
 Connection: close
 Content-Type: text/html

Avec ab (benchmark apache) on vois facilement la différence également sans:
ab -n 1 -v 4 "http://host.dom.tld/dossier/"

 HTML transferred:       33164 bytes

avec, ab -n 1 -v 4 -H "Accept-Encoding: gzip,deflate" "http://host.dom.tld/dossier/"

 HTML transferred:       5760 bytes

la compression utilise du temps CPU , donc une fois la compression activé surveillez votre proc.

j'ai activé la compression comme cela dans la conf de la VM proxy cela compressera tout les flux HTTP de toutes les VM.