blob: 46eacb50a4ee95799175e4b9338c8de48cb4d121 [file] [log] [blame]
# 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), root.
server {
listen 80;
listen [::]:80;
server_name aendggner.example.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name aendggner.example.org;
ssl_certificate /etc/letsencrypt/live/aendggner.example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/aendggner.example.org/privkey.pem;
# Inhalt von target/web/ — ohne aendggner.js.wat, das nur ein Zwischenschritt
# des Übersetzers ist.
root /var/www/aendggner;
index index.html;
# Ohne diesen Typ lehnt der Browser die Streaming-Instanziierung des Moduls ab.
types {
application/wasm wasm;
}
gzip on;
gzip_types application/wasm application/javascript text/css text/html;
gzip_min_length 1024;
# 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;
}
}