# 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;
|
|
}
|