stammtisch-hersbruck/frontend/nginx.conf
Daniel Michelberger 53a8bfe29b fix: nginx startete nicht — gzip_static stand im falschen Block
Der Container ging sofort wieder aus, „exited:unhealthy", und im Deploy-Log
stand nichts daneben: Gebaut, gestartet, fertig. Ausgegangen ist er, weil
nginx seine Konfiguration nicht las.

Schuld war ein `sed` im Dockerfile, das `gzip_static on;` vor die erste Zeile
schieben sollte, die mit `}` beginnt. Das ist in der nginx.conf des Bildes
aber nicht das Ende von `http { … }`, sondern das von `events { … }` — und
dort ist die Anweisung ungültig.

Sie steht jetzt im eigenen Server-Block, wo sie hingehört, und das `sed` ist
weg. Eine Zeile, die eine fremde Konfigurationsdatei mit einem Muster
umschreibt, ist ohnehin eine Wette darauf, wie die Datei innen aussieht.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LTw6xVYgjMy9AQtfs1Gdyu
2026-09-11 16:35:40 +02:00

40 lines
1.4 KiB
Nginx Configuration File

# Ein Server, ein Verzeichnis, drei Seiten.
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
# Vorkomprimierte Fassungen liegen dank `precompress` im Build daneben
# (.gz). Ohne diese Zeile ignoriert nginx sie und packt jede Antwort neu.
#
# Sie steht hier im Server-Block und nicht per `sed` in der
# `nginx.conf` des Bildes: Dort war die erste Zeile, die mit `}` beginnt,
# das Ende von `events { … }`. `gzip_static` ist dort keine gültige
# Anweisung, nginx verweigerte den Start, und der Container ging sofort
# wieder aus — „exited:unhealthy", ohne dass im Deploy-Log etwas
# danebenstand.
gzip_static on;
# Die Seiten sind beim Bauen entstanden und ändern sich nur mit dem
# nächsten Deployment. Das HTML selbst bleibt trotzdem ungecacht: Sonst
# zeigt ein Browser den Wegweiser von vorgestern, wenn sich der Text
# ändert.
location / {
try_files $uri $uri/ $uri.html =404;
add_header Cache-Control "no-cache";
}
# Alles unter /_app/immutable trägt seinen Hash im Namen — das darf ein
# Jahr im Cache liegen.
location /_app/immutable/ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
location = /stammtisch-hersbruck.svg {
add_header Cache-Control "public, max-age=604800";
}
error_page 404 /index.html;
}