Privacy page says no visitor IPs are stored. Hosting text now names Hostinger and its DPA. Remove the TODO placeholders in de and en.
80 lines
2.4 KiB
Nginx Configuration File
80 lines
2.4 KiB
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name _;
|
|
root /usr/share/nginx/html;
|
|
|
|
# No access log: no visitor IPs stored (privacy page says so)
|
|
access_log off;
|
|
|
|
gzip on;
|
|
gzip_vary on;
|
|
gzip_min_length 1024;
|
|
gzip_types text/css application/javascript application/json application/manifest+json image/svg+xml text/plain;
|
|
|
|
# index.html: never cache
|
|
location = /index.html {
|
|
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate";
|
|
add_header Pragma "no-cache";
|
|
add_header Expires "0";
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Service worker control files must never be cached hard, otherwise the
|
|
# PWA can no longer pick up new deployments. Exact matches win over the
|
|
# generic *.js rule below.
|
|
location = /ngsw-worker.js {
|
|
add_header Cache-Control "no-cache, max-age=0, must-revalidate";
|
|
try_files $uri =404;
|
|
}
|
|
location = /ngsw.json {
|
|
add_header Cache-Control "no-cache, max-age=0, must-revalidate";
|
|
try_files $uri =404;
|
|
}
|
|
location = /safety-worker.js {
|
|
add_header Cache-Control "no-cache, max-age=0, must-revalidate";
|
|
try_files $uri =404;
|
|
}
|
|
location = /worker-basic.min.js {
|
|
add_header Cache-Control "no-cache, max-age=0, must-revalidate";
|
|
try_files $uri =404;
|
|
}
|
|
location = /manifest.webmanifest {
|
|
add_header Cache-Control "no-cache, max-age=0, must-revalidate";
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Angular Bundles cache hard
|
|
location ~* \.(?:js|css)$ {
|
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Self-hosted fonts, content-hashed by the build
|
|
location ^~ /media/ {
|
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Assets (Bilder, JSON, Fonts, etc.): just revalidate
|
|
location ^~ /assets/ {
|
|
add_header Cache-Control "no-cache, max-age=0, must-revalidate";
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Also no cache for other html site
|
|
location ~* \.html$ {
|
|
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate" always;
|
|
add_header Pragma "no-cache" always;
|
|
add_header Expires "0" always;
|
|
try_files $uri =404;
|
|
}
|
|
|
|
location / {
|
|
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate";
|
|
# Prerendered pages live at <route>/index.html. Unknown URLs get the CSR shell
|
|
# with status 404 (error_page without "=" keeps the status).
|
|
try_files $uri $uri/index.html =404;
|
|
error_page 404 /index.csr.html;
|
|
}
|
|
}
|