Pour rendre votre site plus rapide mais également améliorer votre score Pagespeed, il est important d’activer la compression Gzip, pour compresser à la volée les fichiers statiques de votre site, mais également d’autoriser les navigateurs à mettre en cache ces derniers afin de ne pas les télécharger à chaque visite.
Par défaut, sur les versions récentes de Plesk, le traitement des fichiers statiques est assuré par Nginx, il n’est donc pas utile d’ajouter des directives dans un fichier .htaccess. Vous pouvez directement les ajouter dans le champs directives additionnelles pour Nginx disponible dans la section Paramètres d’Apache & Nginx.
Activer la compression Gzip
Pour un domaine
Pour activer la compression Gzip sur un domaine, ajoutez les directives suivantes dans le champ directives additionnelles pour Nginx :
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types
application/atom+xml
application/javascript
application/json
application/rss+xml
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/svg+xml
image/x-icon
text/css
text/plain
text/x-component
text/xml
text/javascript;
Sur l’ensemble du serveur
Vous pouvez activer la compression Gzip globalement en modifiant directement le fichier /etc/nginx/nginx.conf
. Il est préférable de faire une sauvegarde de ce fichier avant de le modifier, avec la commande :
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
Vous pouvez ensuite editer le fichier avec la commande :
nano /etc/nginx/nginx.conf
Puis y copier les directives gzip listées précédemment, à l’intérieur du bloc http :
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#tcp_nodelay on;
#gzip on;
#gzip_disable "MSIE [1-6]\.(?!.*SV1)";
server_tokens off;
***** COPIER ici les directives Gzip ********
include /etc/nginx/conf.d/*.conf;
}
Pour vérifier que votre configuration est correcte, utilisez la commande :
nginx -t
Si aucune erreur n’est affichée par cette commande, vous pouvez alors appliquer la configuration avec la commande :
service nginx reload
Autoriser la mise en cache des ressources statiques
Pour autoriser la mise en cache des ressources statiques, ajoutez les directives suivantes dans le champ directives additionnelles Nginx (après les directives gzip si vous les avez déjà ajouté) :
# Cache static files
location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|m4a|mp4|ttf|rss|atom|jpe?g|gif|cur|heic|png|tiff|ico|zip|webm|mp3|aac|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf|webp)$ {
add_header "Access-Control-Allow-Origin" "*";
access_log off;
log_not_found off;
expires max;
}
# Cache css & js files
location ~* \.(?:css(\.map)?|js(\.map)?)$ {
add_header "Access-Control-Allow-Origin" "*";
access_log off;
log_not_found off;
expires 30d;
}