Files
net-research/terraform/configs/nginx/nginx.conf
T
2025-07-05 12:21:01 +03:00

121 lines
3.3 KiB
Nginx Configuration File

# This config was inspired by: https://github.com/antonputra/tutorials/blob/226/lessons/226/nginx/nginx.conf
# Defines user and group credentials used by worker processes.
user www-data;
# Defines the number of worker processes. Generally, it should match the number of CPU cores.
worker_processes auto;
# Binds worker processes to the sets of CPUs.
worker_cpu_affinity auto;
# Change the default thread pool settings
thread_pool default threads=2 max_queue=16384;
# Limit on the maximum number of open files (RLIMIT_NOFILE) for worker processes.
worker_rlimit_nofile 32768;
# Logging configuration.
error_log /var/log/nginx/error.log notice;
# Defines a file that will store the process ID of the main process.
pid /var/run/nginx.pid;
events {
# Maximum number of simultaneous connections that can be opened by a worker process.
worker_connections 16384;
# Serve many clients each thread (Linux only)
use epoll;
# Accept as many connections as possible. If it is disabled, a worker process will accept one new connection at a time.
multi_accept on;
}
http {
# Copies data between one FD and other from within the kernel
# faster than read() + write()
sendfile on;
# Use the default thread pool for asynchronous file I/O
aio threads;
# Only use AIO is used for when larger than or equal to this size
directio 6m;
# 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;
# Disable logging if a file can't be found
log_not_found off;
# Server will close connection after this time
keepalive_timeout 60;
# Max size of types hash tables (processing static sets of data. eg. server names, map directives or mime types)
types_hash_max_size 2048;
# Max allowed size of the client request body
client_max_body_size 250M;
# If the request body size is more than the buffer size, then the entire (or partial)
# request body is written into a temporary file
client_body_buffer_size 512k;
# Request timed out
client_body_timeout 300s;
# Allow the server to close connection on non responding client, this will free up memory
reset_timedout_connection on;
# Include MIME (Multipurpose Internet Mail Extensions) types.
include /etc/nginx/mime.types;
# Defines the default MIME type of a response
default_type application/octet-stream;
# Configures logging.
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Sets the path, format, and configuration for a buffered log write.
access_log /var/log/nginx/access.log main;
# Disable compression.
gzip off;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 81 default_server http2;
listen [::]:81 default_server http2;
server_name _;
root /var/www;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
include /etc/nginx/conf.d/*.conf;
}