How To Save Bandwith?
Par Grumpf le dimanche, septembre 16 2007, 19:42 - geekage - Lien permanent
''Comment économiser la BP (bande passante)?"
en compressant le flux HTTP d'apache, activons donc le "mod_deflate".
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.