Configurer NGINX pour activer la compression gzip dans Synology WebStation
Testé avec le DSM 6.2.4-25556 et le DSM 7.0-41222
Le serveur web par défaut utilisé par WebStation est nginx.
A chaque redémarrage de WebStation, les fichiers de configurations sont régénérer afin d’éviter toute erreur qui viendrait à bloquer le fonctionnement de WebStation. Les fichiers de configuration sont crées à partir de modèle mustache.
Pour rendre le site plus rapide, il est important d’activer la compression gzip, pour compresser à la volée les fichiers statiques du site
Le fichier à modifier se situe dans le dossier :
/var/packages/WebStation/target/misc/
C’est le fichier :
/var/packages/WebStation/target/misc/VirtualHost-nginx.mustache
Le code suivant doit être ajouté :
gzip on;
gzip_static on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/javascript;
Cela donne comme extrait du fichier VirtualHost-nginx.mustache
modifié :
{{#fqdn}}
server_name {{fqdn}};
{{/fqdn}}
{{^fqdn}}
server_name _;
{{/fqdn}}
gzip on;
gzip_static on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/javascript;
{{> /var/packages/WebStation/target/misc/SSLProfile.mustache }}
NGINX utilise le fichier mime.types
pour décider s’il doit activer la compression au fichier qu’il s’apprête à servir. Ce fichier doit lister de manière exhaustive les MIME types quise trouvent dans le fichier /etc/nginx/mime.types
, et gzip_types
correspond aux types MIME auquels doivent être appliqués la compression gzip.
Si vous analysez les diffèrents codes des fichiers, vous remarquerez qu’il n’y a pas de compression pour les images JPG, PNG ou encore GIF. Ce n’est pas conseillé d’activer la compression GZIP pour ce type de fichier, le PNG est déja un format d’image compressé, activer la compression GZIP pour ce type de fichier ne changera rien, et peut même empirer la chose en augmentant la taille du fichier ou le traitement du CPU côté serveur … Pour ce qui est des autres formats non compressés, cela surchargera aussi votre serveur pour un gain très faible.
Quant à l’option gzip_static on;
, cette option permet d’envoyer des fichiers précompressés avec l’extension de nom de fichier «.gz» au lieu de fichiers normaux (ngx_http_gzip_static_module). Cela permet d’éviter de surcharger le processeur du NAS si les fichiers compressés .gz
sont crées lorsque le site est généré. Cela est permis par le plugin jekyll-zopfli.
D’autres informations sur NGINX, et le plugin jekyll-zopfli sont disponibles dans l’article suivant NGINX, jekyll, gzip et Synology WebStation
Pour vérifier si la compression est bien utilisant les outils de developpement de Google Chrome, sur l’onglet “Network” :
En cliquant sur un fichier .html , la ligne Content encoding : gzip
apparaît. Cela veut dire que votre fichier est bien compressé.
Si vous utilisez des polices de caractères web, il faudra les ajouter dans les types MIME de gzip_types
:
application/vnd.ms-fontobject eot;
application/x-font-ttf ttf;
font/opentype ott;
font/x-woff woff;
Le site gtmetrix.com qui permet de mesurer la performance d’un site vous donnera aussi l’information.