Skip to content

fix(frontend): active la compression gzip (statique, au build) sur nginx - #29

Merged
gilmry merged 1 commit into
mainfrom
fix/gzip-static-assets
Aug 20, 2026
Merged

gilmry merged 1 commit into
mainfrom
fix/gzip-static-assets

Conversation

@gilmry

@gilmry gilmry commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Résumé

Gzip n'était pas activé du tout - tous les assets servis bruts, le bundle Chart.js (213 Ko) en tête. Compression au build (gzip_static, niveau 9) plutôt qu'à la volée : les assets sont immuables (hash de contenu dans le nom), inutile de les recompresser à chaque requête sur une machine à 1 seul vCPU.

Test plan

  • Build + docker run local : gzip_static sert bien les .gz pré-générés
  • Bundle Chart.js : 212774 → 72821 octets (mieux que le gzip dynamique par défaut de nginx : 85355)
  • Suite e2e complète (le profil dev ne passe pas par nginx, donc ne couvre pas ce chemin précis - vérifié manuellement en plus)
  • CI

Trouvé en creusant l'empreinte réseau du PWA pour un post communautaire :
gzip n'était pas activé du tout, tous les assets servis bruts - le bundle
Chart.js (213 Ko) en tête. Mesuré : ~65% de moins une fois compressé.

Compression au build plutôt qu'à la volée (gzip_static, niveau 9) :
les assets sont immuables (hash de contenu dans le nom de fichier), donc
les recompresser à chaque requête gaspillerait du CPU pour rien sur une
machine à 1 seul vCPU. Fallback gzip dynamique pour ce qui n'a pas de
.gz pré-généré.

Vérifié : build + gzip_static testés en local (docker run), le bundle
Chart.js passe de 212774 à 72821 octets (mieux que le gzip dynamique par
défaut de nginx, qui donnait 85355 - niveau de compression plus faible).
Suite e2e complète (le profil dev ne passe pas par nginx, donc ne couvre
pas ce chemin - vérifié manuellement à la place).
@gilmry
gilmry merged commit 517386b into main Aug 20, 2026
2 checks passed
@gilmry
gilmry deleted the fix/gzip-static-assets branch August 20, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant