Стандартная конфигурация Nginx оставляет 60–70% производительности на столе. Эти настройки актуальны для VPS с 2+ CPU и 2+ GB RAM.
nginx.conf — основные параметры
worker_processes auto; # = числу CPU
worker_rlimit_nofile 65535;
events {
worker_connections 4096;
use epoll;
multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
keepalive_requests 1000;
types_hash_max_size 2048;
server_tokens off; # Скрыть версию Nginx
# Gzip
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json
application/javascript text/xml application/xml
image/svg+xml font/woff2;
}
HTTP/2 + SSL
server {
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
}
Кэш статических файлов
location ~* \.(jpg|jpeg|png|webp|gif|ico|css|js|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
access_log off;
}
Rate limiting — защита от перегрузки
http {
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn:10m;
}
server {
location /api/ {
limit_req zone=api burst=20 nodelay;
limit_conn conn 10;
}
}
💡 После изменений:
nginx -t (проверка конфига) → systemctl reload nginx (применение без рестарта).