| @ -0,0 +1,108 @@ | |||||
| # 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; | |||||
| } | |||||