| # 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; |
| } |
| } |