Apache

La fois dernière, on a vu l’optimisation des objets eux mêmes (minimisation et compression sans perte), cette fois on regarde ce qu’on peut faire faire à Apache.

On crée un fichier .htaccess à la racine du site dans lequel on va mettre toutes ces directives Apache.

 

Compression

 

Deflate est un algorithme de compression utilisable par les serveurs Apache et par la grande majorité des navigateurs. Par contre cette compression n’est pas active par défaut. Il faut l’activer pour certains types de fichiers.

Ceux qui m’intéressent ici sont les fichiers statiques.

J’ajoute au fichier .htaccess le deflate pour les types de fichiers statiques  :

# Compression Deflate
SetOutputFilter DEFLATE

# Fichiers à compresser
 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE image/svg+xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/atom_xml
 AddOutputFilterByType DEFLATE application/x-javascript
 AddOutputFilterByType DEFLATE application/x-httpd-php
 AddOutputFilterByType DEFLATE application/x-httpd-fastphp
 AddOutputFilterByType DEFLATE application/x-httpd-eruby

# Navigateurs non compatibles
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Fichiers à ne pas compresser (car déjà compressés)
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:pdf|avi|mov|mp3|mp4|rm)$ no-gzip dont-vary

# Proxies
Header append Vary User-Agent env=!dont-vary

 

Cache côté navigateur

 

# CACHE COTE NAVIGATEUR #

# Turn on Expires and set default expires to 4 week
ExpiresActive On
ExpiresDefault A2419200
 
# Set up caching on media files for 4 week
<FilesMatch "\.(ico|gif|jpg|jpeg|png|pdf|odt|odp|ppt)$">
  ExpiresDefault A2419200
  Header append Cache-Control "max-age=A2419200, public"
</FilesMatch>
 
# Set up 4 week caching on commonly updated files
<FilesMatch "\.(xml|txt|js|css)$">
  ExpiresDefault A2419200
  Header append Cache-Control "max-age=A2419200, public"
</FilesMatch>

# 1 jour pour les fichiers HTML
<FilesMatch "\.html$">
  ExpiresDefault A86400
  Header append Cache-Control "max-age=A86400, public"
</FilesMatch>

Et voilà, on est un peu mieux !

Sur le même sujet :