aboutsummaryrefslogtreecommitdiff
path: root/deploy/nginx-aendggner.conf
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/nginx-aendggner.conf')
-rw-r--r--deploy/nginx-aendggner.conf42
1 files changed, 25 insertions, 17 deletions
diff --git a/deploy/nginx-aendggner.conf b/deploy/nginx-aendggner.conf
index f4667fb..46eacb5 100644
--- a/deploy/nginx-aendggner.conf
+++ b/deploy/nginx-aendggner.conf
@@ -1,9 +1,8 @@
-# Reverse-Proxy-Vorlage für den ÄndGgner-Webserver. Übernimmt TLS-Terminierung und
-# Rate-Limiting; der Java-Prozess selbst bindet nur an 127.0.0.1 (siehe aendggner-web.service).
+# Vorlage für die Auslieferung der ÄndGgner-Browserfassung. Es gibt keinen
+# Anwendungsprozess mehr: Der Server liefert nur statische Dateien aus
+# (Inhalt von target/web/), gerechnet wird im Browser.
#
-# Vor dem Einsatz anpassen: server_name, ssl_certificate(_key) (z. B. via certbot).
-
-limit_req_zone $binary_remote_addr zone=aendggner:10m rate=10r/m;
+# Vor dem Einsatz anpassen: server_name, ssl_certificate(_key) (z. B. via certbot), root.
server {
listen 80;
@@ -20,20 +19,29 @@ server {
ssl_certificate /etc/letsencrypt/live/aendggner.example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/aendggner.example.org/privkey.pem;
- # Muss zum Upload-Limit von UploadHandler (MAX_BODY_BYTES, aktuell 40 MB) passen.
- client_max_body_size 40m;
+ # Inhalt von target/web/ — ohne aendggner.js.wat, das nur ein Zwischenschritt
+ # des Übersetzers ist.
+ root /var/www/aendggner;
+ index index.html;
- location / {
- limit_req zone=aendggner burst=5 nodelay;
+ # Ohne diesen Typ lehnt der Browser die Streaming-Instanziierung des Moduls ab.
+ types {
+ application/wasm wasm;
+ }
- proxy_pass http://127.0.0.1:8080;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
+ gzip on;
+ gzip_types application/wasm application/javascript text/css text/html;
+ gzip_min_length 1024;
- # Etwas großzügiger als der 30s-Timeout der Anwendung, damit deren eigene
- # 504-Antwort den Nutzer erreicht statt eines nginx-eigenen Timeouts.
- proxy_read_timeout 35s;
+ # Das Wasm-Modul ist einige Megabyte groß und ändert sich nur mit einer neuen
+ # Fassung; vorkomprimierte .gz/.br daneben zu legen lohnt sich (ngx_brotli bzw.
+ # gzip_static).
+ location ~ \.(wasm|js|css)$ {
+ expires 7d;
+ add_header Cache-Control "public";
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
}
}