server { listen 8080; server_name _; server_tokens off; root /usr/share/nginx/html; gzip on; gzip_min_length 1024; gzip_types text/css application/javascript image/svg+xml application/json; include /etc/nginx/snippets/security-headers.conf; # Only these paths are served; .git, tools/, README.md, images/ etc. return 404. location = / { try_files /index.html =404; add_header Cache-Control "no-cache" always; include /etc/nginx/snippets/security-headers.conf; } location = /index.html { add_header Cache-Control "no-cache" always; include /etc/nginx/snippets/security-headers.conf; } location ~ ^/(favicon\.svg|robots\.txt)$ { add_header Cache-Control "public, max-age=86400" always; include /etc/nginx/snippets/security-headers.conf; } location ^~ /assets/ { add_header Cache-Control "public, max-age=3600" always; include /etc/nginx/snippets/security-headers.conf; } location / { return 404; } }