Nginx gzip #40

Closed
opened 2026-09-12 15:03:58 +02:00 by meleki · 1 comment
Owner

gzip im nginx einschalten.

Stand: das Bundle geht mit 589 827 Bytes unkomprimiert raus, obwohl der Browser gzip anbietet; komprimiert wären es 184 kB. gzip ist in /_stacks/web/nginx.conf aus.

Achtung: die Datei gilt für alle Seiten im Web-Stack, nicht nur für den game-maker. Nur auf ausdrücklichen Auftrag anfassen.


Übernommen aus todo-notes/nginx-gzip.md beim Umzug auf das Issue-System (2026-09-12).

  • Angelegt: 2026-09-11 · bf41919 — Add todo notes for the next round of features, gaps and upkeep
  • Gemeldet von: Claude (Assistent)
gzip im nginx einschalten. Stand: das Bundle geht mit 589 827 Bytes unkomprimiert raus, obwohl der Browser gzip anbietet; komprimiert wären es 184 kB. `gzip` ist in `/_stacks/web/nginx.conf` aus. Achtung: die Datei gilt für alle Seiten im Web-Stack, nicht nur für den game-maker. Nur auf ausdrücklichen Auftrag anfassen. --- *Übernommen aus `todo-notes/nginx-gzip.md` beim Umzug auf das Issue-System (2026-09-12).* - **Angelegt:** 2026-09-11 · `bf41919` — Add todo notes for the next round of features, gaps and upkeep - **Gemeldet von:** Claude (Assistent)
meleki added the todo-note label 2026-09-12 15:03:58 +02:00
admin added the low-priority label 2026-09-12 18:14:49 +02:00
Author
Owner

Erledigt am 2026-09-13 in /_stacks/web/nginx.conf (Sicherung nginx.conf.bak-20260913-105148 daneben). Gilt fuer alle Seiten im Web-Stack.

gzip an: gzip on, gzip_vary on, gzip_proxied any (Brandmauer davor), gzip_min_length 1024, gzip_comp_level 5, gzip_types fuer JS/CSS/JSON/XML/SVG/Fonts/WASM (HTML immer).

Gemessen mit Accept-Encoding: gzip, lokal ueber 8080 und ueber nockal.com gleich:

vorher nachher
dist/assets/index-*.js 623 161 Bytes 196 703 Bytes, Content-Encoding: gzip, Vary: Accept-Encoding
api/index.php?r=projects 489 239
index.html 559 559 (unter gzip_min_length, bewusst)
ohne Accept-Encoding 623 161 623 161

Dazu location ~ /\.git(/|$) { return 404; } vor dem PHP-Block: fuenf Checkouts liegen unter dem nginx-Root und lieferten .git/HEAD und .git/config mit 200 aus (Passwoerter standen in keiner davon, die Remote-URLs tragen nur den Usernamen). Jetzt 404 fuer .git, .git/HEAD, .git/config, .git/x.php, auch fuer wiki/.git und die Nachbar-Repos; .gitattributes bleibt erreichbar.

Beweis, dass der Editor damit laeuft: Gate === CHECK EXIT 0 === (850 Tests), e2e-Modul 27 ueber nockal.com ALL PASSED – 16 checks, === E2E EXIT 0 ===.

Falle beim Eingriff: die Datei ist ein Einzeldatei-Bind-Mount. Ein Editor, der sie per Neuanlage ersetzt, tauscht den Inode; der Container behaelt den alten, nginx -t/reload melden Erfolg gegen die alte Datei. Erst docker restart web (Unterbrechung ~1 s) hat die neue Datei in den Container gebracht. Nebenbei gemessen: die Brandmauer macht auch aus einem 404 eine 418-Seite, nicht nur aus 5xx.

Erledigt am 2026-09-13 in `/_stacks/web/nginx.conf` (Sicherung `nginx.conf.bak-20260913-105148` daneben). Gilt fuer alle Seiten im Web-Stack. **gzip an:** `gzip on`, `gzip_vary on`, `gzip_proxied any` (Brandmauer davor), `gzip_min_length 1024`, `gzip_comp_level 5`, `gzip_types` fuer JS/CSS/JSON/XML/SVG/Fonts/WASM (HTML immer). Gemessen mit `Accept-Encoding: gzip`, lokal ueber 8080 und ueber nockal.com gleich: | | vorher | nachher | |---|---|---| | `dist/assets/index-*.js` | 623 161 Bytes | **196 703 Bytes**, `Content-Encoding: gzip`, `Vary: Accept-Encoding` | | `api/index.php?r=projects` | 489 | 239 | | `index.html` | 559 | 559 (unter `gzip_min_length`, bewusst) | | ohne `Accept-Encoding` | 623 161 | 623 161 | **Dazu `location ~ /\.git(/|$) { return 404; }`** vor dem PHP-Block: fuenf Checkouts liegen unter dem nginx-Root und lieferten `.git/HEAD` und `.git/config` mit 200 aus (Passwoerter standen in keiner davon, die Remote-URLs tragen nur den Usernamen). Jetzt 404 fuer `.git`, `.git/HEAD`, `.git/config`, `.git/x.php`, auch fuer `wiki/.git` und die Nachbar-Repos; `.gitattributes` bleibt erreichbar. **Beweis, dass der Editor damit laeuft:** Gate `=== CHECK EXIT 0 ===` (850 Tests), e2e-Modul 27 ueber nockal.com `ALL PASSED – 16 checks`, `=== E2E EXIT 0 ===`. **Falle beim Eingriff:** die Datei ist ein Einzeldatei-Bind-Mount. Ein Editor, der sie per Neuanlage ersetzt, tauscht den Inode; der Container behaelt den alten, `nginx -t`/`reload` melden Erfolg gegen die alte Datei. Erst `docker restart web` (Unterbrechung ~1 s) hat die neue Datei in den Container gebracht. Nebenbei gemessen: die Brandmauer macht auch aus einem 404 eine 418-Seite, nicht nur aus 5xx.
admin added this to the Development project 2026-09-13 13:43:19 +02:00
admin moved this to Done in Development on 2026-09-13 13:43:49 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#40