Comme beaucoup d'admin système qui bossent dans l'hébergement web. Nous avons déjà eu la remarque mais pourquoi mon site mets 3 secondes pour s'afficher . Avant de critiquer les développeurs comme d'habitude .
Nous allons mettre en cache le contenu statique comme les css,image,html,js bla bla et bla.
Le module apache qui permet la mise en cache est le mod_expires

  1. /*
  2. a2enmod expires
  3. ou
  4. ln -s ../mods-available/expires.load expires.load
  5. */

Dans votre vhost

  1. /*
  2. ExpiresActive On
  3.  
  4. <Directory /bla/>
  5.  
  6. ExpiresByType text/css "access plus 5 days"
  7. ExpiresByType image/gif "access plus 1 month"
  8. ExpiresByType image/jpeg "access plus 1 month"
  9. ExpiresByType image/png "access plus 1 month"
  10. </Directory>
  11.  
  12. */

Dans le cas actuel on cache les css 5 jours , les gifs , jpeg , png sont en cache 1 mois.

Vérifier que notre cache est bien fonctionnel :

  1. /*
  2. :/tmp# wget -S http://www.robertain.com/public/ncdu1.JPG
  3. --2011-12-14 23:33:06-- http://www.robertain.com/public/ncdu1.JPG
  4. Résolution de www.robertain.com... 88.191.127.248, 88.191.222.37
  5. Connexion vers www.robertain.com|88.191.127.248|:80...connecté.
  6. requête HTTP transmise, en attente de la réponse...
  7. HTTP/1.1 200 OK
  8. Date: Wed, 14 Dec 2011 22:33:06 GMT
  9. Server: Apache
  10. Last-Modified: Fri, 29 Apr 2011 17:38:52 GMT
  11. ETag: "3b446c-6792-4a21225ac4300"
  12. Accept-Ranges: bytes
  13. Content-Length: 26514
  14. Cache-Control: max-age=2592000
  15. Expires: Fri, 13 Jan 2012 22:33:06 GMT
  16. Keep-Alive: timeout=15, max=100
  17. Connection: Keep-Alive
  18. Content-Type: image/jpeg
  19. Longueur: 26514 (26K) [image/jpeg]
  20. Sauvegarde en : «ncdu1.JPG»
  21.  
  22. 100%[==================================================================================================================>] 26 514 --.-K/s ds 0,07s
  23.  
  24. 2011-12-14 23:33:06 (378 KB/s) - «ncdu1.JPG» sauvegardé [26514/26514]
  25. */

Avec lynx

  1. /*
  2. # lynx -head http://www.robertain.com/themes/Paris/style.css
  3. HTTP/1.1 200 OK
  4. Date: Wed, 14 Dec 2011 22:41:05 GMT
  5. Server: Apache
  6. Last-Modified: Fri, 28 Jan 2011 18:15:12 GMT
  7. ETag: "3b4595-2f98-49aec0c0d4c00"
  8. Accept-Ranges: bytes
  9. Cache-Control: max-age=432000
  10. Expires: Mon, 19 Dec 2011 22:41:05 GMT
  11. Vary: Accept-Encoding
  12. Content-Encoding: gzip
  13. Content-Length: 2981
  14. Connection: close
  15. Content-Type: text/css
  16.  
  17. */

Par rapport à une requête http classique nous avons 2 headers en plus

  • Cache-control : max-age : Temps en secondes pendant lequel le contenu sera en cache.
  • Expires : Date d'expiration du cache

Bien-sur je vous dis pas de redémarrer apache ... :)
Ce n'est qu'à ce moment que vous pouvez gueuler sur les développeurs. Ou après avoir mis du nginx (mais je maitrise pas encore la bête) .