Mise en cache et compression des fichiers statiques dans Nginx
Comment accélérer votre site web et réduire la charge du serveur.
Une configuration correcte du cache et de la compression pour les fichiers statiques (images, CSS, JavaScript, polices, etc.) est l'un des moyens les plus efficaces d'améliorer la vitesse de chargement d'un site, de réduire la bande passante consommée et d'alléger la charge globale sur votre serveur.
Dans ce guide, nous abordons deux fonctionnalités essentielles de Nginx :
- La directive
expirespour contrôler le cache navigateur - La compression GZIP pour les fichiers texte
1. Configurer le cache navigateur avec expires
La directive expires indique au navigateur combien de temps il peut conserver un fichier dans son cache local avant de solliciter à nouveau le serveur.
Ouvrez le fichier de configuration Nginx de votre site (généralement /etc/nginx/conf.d/vhost.conf ou similaire) et ajoutez le bloc location suivant pour les fichiers statiques :
location ~* \.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot|mp4|webm|ogg|mp3|pdf|zip)$ {
expires 30d; # Cache pendant 30 jours
add_header Cache-Control "public";
access_log off; # Désactiver les logs pour les fichiers statiques (économie de ressources)
}
Valeurs expires recommandées :
- Images, polices et icônes :
30dou1y - CSS et JavaScript :
7d—30d(utiliser des durées plus courtes pour les fichiers fréquemment mis à jour) - Fichiers rarement modifiés :
1y
2. Activer la compression GZIP
La compression GZIP peut réduire considérablement la taille des fichiers texte (HTML, CSS, JS, SVG, etc.), ce qui accélère le chargement des pages.
Ajoutez la configuration suivante dans votre bloc server {} :
server {
...
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6; # Niveau de compression (1–9)
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types
text/plain
text/css
text/xml
text/javascript
application/javascript
application/json
application/xml
application/rss+xml
image/svg+xml;
}
Nos produits et services
3. Appliquer les paramètres à tous les sites (modèle)
Pour appliquer automatiquement ces optimisations à tous les hôtes virtuels, créez un fichier modèle :
sudo nano /usr/local/ispmgr/etc/server.templ
Ajoutez-y le contenu suivant :
location ~* \.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public";
access_log off;
}
Après l'enregistrement, redémarrez Nginx :
sudo systemctl restart nginx
Conseils utiles
- Testez toujours votre configuration après toute modification :
sudo nginx -t - Combinez
expiresavec l'en-têteCache-Control: publicpour des performances optimales. - Évitez de définir des durées de cache très longues (par exemple, plus d'un an) sur des fichiers fréquemment mis à jour tels que CSS ou JavaScript — les utilisateurs risqueraient d'afficher des versions obsolètes pendant une longue période.
- Sur un VPS ou un serveur dédié, vous pouvez aller encore plus loin en utilisant le cache FastCGI, proxy_cache ou des règles avancées de cache navigateur.
Aide
Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !