user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 4096; use epoll; } http { 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; server_tokens off; keepalive_timeout 16; connection_pool_size 4k; request_pool_size 8k; output_buffers 10 32k; client_max_body_size 2m; client_body_buffer_size 16k; client_header_buffer_size 4k; large_client_header_buffers 16 8k; fastcgi_cache_path /data/nginx/cache levels=1:2 keys_zone=cache:128m inactive=600m use_temp_path=off; fastcgi_cache_key "$scheme$request_method$host$request_uri"; # Gzip gzip on; gzip_comp_level 6; gzip_min_length 4096; gzip_proxied any; gzip_vary on; gzip_types text/plain text/css text/javascript application/javascript application/json application/octet-stream application/x-font-ttf application/x-font-opentype application/vnd.ms-fontobject image/svg+xml image/x-icon; # Brotli brotli on; brotli_comp_level 6; brotli_min_length 4096; brotli_types text/plain text/css text/javascript application/javascript application/json application/octet-stream application/x-font-ttf application/x-font-opentype application/vnd.ms-fontobject image/svg+xml image/x-icon; map $uri $cache_duration { "~*^.+\.(jpe?g|gif|png|svg|js|json|css|zip|rar|eot|ttf|woff|woff2|ico|xml)$" "max"; default "off"; } include /etc/nginx/conf.d/*.conf; }