# set user for nginx user {{ $user }}; # you must set worker processes based on your CPU cores worker_processes {{ $processes }}; # number of file descriptors used for nginx # the limit for the maximum FDs on the server is usually set by the OS. # if you don't set FD's then OS settings will be used which is by default 2000 worker_rlimit_nofile 100000; pid /run/nginx.pid; events { # determines how much clients will be served per worker worker_connections {{ $connections }}; # optimized to serve many clients with each thread, essential for linux use epoll; # accept as many connections as possible multi_accept on; } http { server_tokens off; @if ($env === 'development') # error log will be only write from debug error_log /var/log/nginx.error_log debug; @else # error log will be only write from warn-level error_log /var/log/nginx.error_log warn; # no logging for 3XX map \$status \$loggable { ~^[3] 0; default 1; } # send headers in one piece, it is better than sending them one by one tcp_nopush on; # don't buffer data sent, good for small data bursts in real time tcp_nodelay on; # caching # optimizes serving static files from the file system sendfile on; # assets file, 1000 files for 30 seconds open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; @endif #buffer client_body_buffer_size 128k; client_max_body_size 250m; client_header_buffer_size 1k; large_client_header_buffers 4 4k; output_buffers 1 32k; postpone_output 1460; # allow the server to close connection on non responding client, this will free up memory reset_timedout_connection on; # server will close connection after this time -- default 75 keepalive_timeout 30; client_header_timeout 3m; client_body_timeout 10m; send_timeout 3m; # compress files, but not on older version of IE gzip on; gzip_min_length 1000; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; gzip_types application/x-javascript text/css application/javascript text/javascript text/plain text/xml application/json application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/xml font/eot font/opentype font/otf image/svg+xml image/vnd.microsoft.icon; # includes include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*.conf; include /etc/nginx/mime.types; }