Cache statique Nginx Configurer le cache des fichiers statiques et les en-têtes de cache Nginx sur un VPS HolyCloud pour accélérer vos sites. ~11 min de lecture Intermédiaire #nginx #cache #performance #static Cache statique Nginx Sur un VPS Linux HolyCloud servant des sites avec Nginx, optimiser le cache des fichiers statiques (CSS, JS, images, polices) réduit la charge CPU et améliore le temps de chargement. Ce guide combine en-têtes expires / Cache-Control et zone de cache proxy optionnelle. Prérequis Nginx installé et site fonctionnel sur le VPS HolyCloud Accès sudo Domaine en HTTPS recommandé (Certbot) Étape 1 : en-têtes de cache navigateur (assets versionnés) Éditez le virtual host : sudo nano /etc/nginx/sites-available/example.com Bloc pour fichiers statiques courants : location ~* \.(?:css|js|jpg|jpeg|gif|png|ico|svg|webp|woff2?|ttf|eot)$ { expires 30d; add_header Cache-Control "public, immutable"; access_log off; try_files $uri =404; } Pour des assets sans hash dans le nom (risque de cache obsolète), utilisez une durée plus courte : expires 7d; add_header Cache-Control "public"; Test et rechargement : sudo nginx -t sudo systemctl reload nginx Vérifiez les en-têtes : curl -I https://www.example.com/assets/style.css Recherchez Cache-Control et Expires. Étape 2 : gzip / gzip_static Compression côté Nginx : gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml; Si vous pré-générez .gz à la build : gzip_static on; Étape 3 : zone de cache proxy (reverse proxy) Utile si Nginx sur le VPS HolyCloud fait proxy vers une app (Node, PHP-FPM upstream HTTP, autre port). Créez les répertoires : sudo mkdir -p /var/cache/nginx/proxy sudo chown www-data:www-data /var/cache/nginx/proxy Dans /etc/nginx/nginx.conf, bloc http : proxy_cache_path /var/cache/nginx/proxy levels=1:2 keys_zone=STATIC:10m max_size=500m inactive=7d use_temp_path=off; Dans le server : location /static/ { proxy_pass http://127.0.0.1:3000; proxy_cache STATIC; proxy_cache_valid 200 7d; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; add_header X-Cache-Status $upstream_cache_status; } Étape 4 : open_file_cache (fichiers locaux) Réduit les appels système pour sites à fort trafic sur le même VPS : open_file_cache max=10000 inactive=30s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors on; Placez ces directives dans le bloc http de nginx.conf. Étape 5 : sécurité et HTML dynamique Ne mettez pas de cache long sur le HTML/API : location / { add_header Cache-Control "no-store, no-cache, must-revalidate"; try_files $uri $uri/ /index.php?$query_string; } Avec PHP-FPM : location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.2-fpm.sock; add_header Cache-Control "no-store"; } Étape 6 : purge et monitoring Taille du cache proxy : sudo du -sh /var/cache/nginx/proxy Purge manuelle : sudo rm -rf /var/cache/nginx/proxy/* sudo systemctl reload nginx Logs avec statut cache : sudo tail -f /var/log/nginx/access.log | grep -i cache Sur un VPS HolyCloud à ressources limitées, limitez max_size (ex. 200–500 Mo) pour ne pas saturer le disque. Vérification sudo nginx -t curl -I https://www.example.com/favicon.ico curl -I https://www.example.com/static/app.js Besoin d'aide HolyCloud Modifications sans effet : cache navigateur — testez en navigation privée ou videz le CDN si vous en utilisez un devant le VPS X-Cache-Status: MISS permanent : vérifiez proxy_cache_key, cookies Set-Cookie qui désactivent le cache Support HolyCloud : extrait nginx -T, URL testée, df -h (espace cache disque) Suite de la lecture Article précédent Audit sécurité avec Lynis Lire Article suivant Certbot en mode DNS (wildcard) Lire