Synology DS620slim  

NGINX, jekyll, gzip et Synology WebStation

Source et logiciel utilisé : le plugin pour jekyll jekyll-zopfli

Dans l’article “Configurer NGINX pour activer la compression gzip dans Synology WebStation”, les options gzip on; et gzip_static on; ont été activées dans le fichier VirtualHost-nginx.mustache.

L’option gzip on; permet d’activer l’envoi de réponses compressées pour les fichiers HTML, css etc.

L’option gzip_static on; permet quant à elle d’envoyer des fichiers précompressés avec l’extension de nom de fichier .gz au lieu de fichiers normaux. 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é par la commande jekyll build ou bundle exec jekyll build. Cela est permis par le plugin jekyll-zopfli.

Il faut tout d’abord installer la gem jekyll-zopfli :

gem install jekyll-zopfli

Et ajouter le nom du plugin dans le fichier _config.yml :

plugins:
  - jekyll-zopfli

On doit aussi rajouter la ligne suivante au fichier Gemfile :

gem 'jekyll-zopfli'

La commande built doit être lancée avec la variable d’environnement JEKYLL_ENV=production car, par construction, le plugin jekyll-zopfli ne crée les fichiers .gz qu’en mode production.

Ainsi, en lançant la commande de construction du site, JEKYLL_ENV=production bundle exec jekyll build ou JEKYLL_ENV=production jekyll build, on verra apparaître dans le dossier _site, pour chaque fichier, une version compressée en .gz qui sera envoyée par NGINX grâce aux options gzip on; et gzip_static on;.

Par défaut, le plugin jekyll-zopfli compresse les fichiers .html, .css, .js, .txt, .ttf, .atom, .stl, .xml, .svg et .eot. On peut adapter les types de fichiers compressés dans _config.yml grâce à ces lignes :

zopfli:
  extensions:
    - '.html'
    - '.css'
    - '.js

Ainsi le serveur web NGINX enverra au navigateur des fichiers déjà compressés à la création du site sans avoir à les compresser à la volée, soit un gain de puissance processeur et un gain de temps de réponse.

· NGINX, jekyll, WebStation