# Security Headers add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval'" always; # HSTS (HTTP Strict Transport Security) add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # Remove nginx version from headers server_tokens off; # Buffer size limitations client_body_buffer_size 1K; client_header_buffer_size 1k; client_max_body_size 10M; large_client_header_buffers 2 1k; # Timeout settings client_body_timeout 10; client_header_timeout 10; keepalive_timeout 5 5; send_timeout 10; # Gzip compression gzip on; gzip_vary on; gzip_min_length 1024; gzip_proxied expired no-cache no-store private must-revalidate auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/javascript application/json application/xml image/svg+xml; # Hide sensitive files location ~ /\.(?!well-known) { deny all; } location ~ /\.ht { deny all; } # Disable access to backup files location ~* \.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)$ { deny all; }