user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; worker_rlimit_nofile 65535; events { multi_accept on; worker_connections 2048; } http { server_tokens off; http2 on; http3 on; ssl_prefer_server_ciphers on; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_cache shared:SSL:30m; ssl_session_timeout 1h; ssl_session_tickets off; ssl_buffer_size 32k; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE"; # add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header Referrer-Policy "no-referrer-when-downgrade"; add_header Permissions-Policy "geolocation=(), microphone=()"; server_names_hash_max_size 1024; server_names_hash_bucket_size 128; types_hash_max_size 2048; types_hash_bucket_size 128; variables_hash_max_size 1024; variables_hash_bucket_size 128; open_file_cache max=1024 inactive=20s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors off; limit_req_zone $binary_remote_addr zone=example_zone:30m rate=25r/s; limit_req zone=example_zone burst=50 nodelay; limit_rate 5m; fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:20m max_size=512m inactive=30m; proxy_buffering on; proxy_buffers 16 8k; include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; # expires 1h; gzip on; gzip_static on; gzip_buffers 16 8k; client_body_buffer_size 128k; output_buffers 4 32k; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; include /etc/nginx/conf.d/*.conf; }