Справочник по конфигурации Nginx
Справочная таблица часто используемых фрагментов конфигурации Nginx, быстрый поиск и копирование кода конфигурации
Автоматическое установление количества рабочих процессов (обычно равно количеству ядер CPU)
worker_processes auto;
Установка максимального количества соединений для каждого рабочего процесса
events {
worker_connections 1024;
}Включение конфигурации MIME-типов
include /etc/nginx/mime.types; default_type application/octet-stream;
Включение эффективной передачи файлов
sendfile on; tcp_nopush on; tcp_nodelay on;
Установка времени ожидания длительного соединения
keepalive_timeout 65;
Установка максимального размера тела запроса клиента
client_max_body_size 100M;
Скрытие номера версии Nginx
server_tokens off;
Базовая конфигурация блока Server
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}Конфигурация нескольких доменов
server_name example.com www.example.com;
Конфигурация домена с подстановочным знаком
server_name *.example.com;
Установка сервера по умолчанию
listen 80 default_server;
Мониторинг адреса IPv6
listen [::]:80;
Установка корневого каталога или псевдонима
root /var/www/html; # или использовать alias alias /var/www/files/;
Точное совпадение пути
location = /path {
# точное совпадение
}Префиксное совпадение пути
location /api/ {
# префиксное совпадение
}Совпадение с регулярным выражением
location ~ \.php$ {
# регулярное совпадение (регистрозависимое)
}Независимое от регистра регулярное совпадение
location ~* \.\(jpg|jpeg|png|gif\)$ {
# регулярное совпадение (независимое от регистра)
}Приоритетное сопоставление префикса (выше, чем регулярное выражение)
location ^~ /images/ { # Приоритетное сопоставление префикса }Порядок попытки файлов (часто используется в приложениях SPA)
location / { try_files $uri $uri/ /index.html; }Доступ только для внутренних запросов
location /internal/ { internal; }Базовая конфигурация обратного прокси
location /api/ { proxy_pass http://backend:3000/; }Настройка заголовков прокси-запроса
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
Конфигурация прокси WebSocket
location /ws/ { proxy_pass http://backend:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }Определение группы серверов-источников
upstream backend { server 127.0.0.1:3000; server 127.0.0.1:3001; keepalive 32; }Конфигурация балансировки нагрузки
upstream backend { least_conn; # или ip_hash; server 127.0.0.1:3000; server 127.0.0.1:3001; }Настройки таймаута прокси
proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s;
Настройка буфера прокси
proxy_buffering on; proxy_buffer_size 4k; proxy_buffers 8 4k;
Базовая конфигурация SSL
server { listen 443 ssl http2; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; }Настройка версии протокола SSL
ssl_protocols TLSv1.2 TLSv1.3;
Настройка шифровальных наборов
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on;
Кэш сессий SSL
ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d;
Перенаправление HTTP на HTTPS
server { listen 80; server_name example.com; return 301 https://$server_name$request_uri; }Включение HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Включение OCSP Stapling
ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s;
Кэширование статических ресурсов
location ~* \. (css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ { expires 30d; add_header Cache-Control "public, immutable"; }Отключение кэширования
location /api/ { add_header Cache-Control "no-store, no-cache, must-revalidate"; }Конфигурация кэширования прокси
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g; location / { proxy_cache my_cache; proxy_cache_valid 200 1d; }Включение ETag
etag on;
Включение условных запросов
if_modified_since before;
Базовая конфигурация сжатия Gzip
gzip on; gzip_vary on; gzip_min_length 1024; gzip_comp_level 6;
Настройка MIME-типов для сжатия
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;
Включение сжатия для прокси-запросов
gzip_proxied any;
Включить предварительно сжатые файлы
gzip_static on;
Конфигурация CORS для кросс-доменных запросов
add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,Content-Type";
Защита от XSS и клик-хакинга
add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options SAMEORIGIN;
Политика безопасности содержимого
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
Ограничение скорости запросов
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location /api/ {
limit_req zone=one burst=20 nodelay;
}Запрет доступа к скрытым файлам
location ~ /\. {
deny all;
}Белый список IP
location /admin/ {
allow 192.168.1.0/24;
deny all;
}Конфигурация журнала доступа
access_log /var/log/nginx/access.log;
Конфигурация журнала ошибок
error_log /var/log/nginx/error.log warn;
Пользовательский формат журнала
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';Журнал в формате JSON
log_format json escape=json '{"time":"$time_iso8601","ip":"$remote_addr","method":"$request_method","uri":"$uri","status":$status}';Отключить журнал доступа
access_log off;
Условный журнал (запись только ошибок)
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;Кэш дескрипторов файлов
open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2;
Включить многократное принятие соединений и epoll
events {
multi_accept on;
use epoll;
}Кэш FastCGI
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fastcgi:10m;
location ~ \.php$ {
fastcgi_cache fastcgi;
fastcgi_cache_valid 200 1h;
}Ограничение числа соединений
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 100;
Оптимизация тайм-аутов
client_body_timeout 12; client_header_timeout 12; send_timeout 10;
📖О инструменте
Особенности
❓Частые вопросы
🔗Связанные инструменты
Парсер Cron-выражений
Проверка синтаксиса Cron и просмотр предстоящих времен выполнения.
JSON в CSV
Преобразование данных JSON в формат CSV
JSON в YAML
Преобразование данных JSON в формат YAML
Конвертер JSON в XML
Преобразование данных JSON в формат XML
Преобразование YAML в JSON.
Преобразование YAML-конфигурации в данные в формате JSON.
JSON-форматтер
Форматирование, валидация и сжатие JSON-данных
Визуализация JSON
Показать данные JSON в виде древовидной структуры
Генератор JSON-данных
Генерация имитированных JSON-данных для тестирования
Переводчик i18n JSON
Однократно перевести весь JSON-файл. Вставьте ваш базовый контент, выберите целевой язык; инструмент будет вызывать ваш OpenRouter API с использованием плоских ключей
Сравнение различий JSON
Сравнение различий между двумя JSON-данными
Генератор QR-кодов
Генерировать настраиваемое изображение QR-кода
Генератор SVG‑заполнителя изображения
Создание настраиваемого SVG‑заполнителя изображения
Конвертер изображений в Base64
Инструмент двустороннего преобразования изображений и Base64-кодирования
Генератор UUID
Пакетная генерация уникальных UUID
Генератор паролей
Генерирует безопасные надёжные случайные пароли.
Кодирование и декодирование Base64
Инструмент кодирования и декодирования строк Base64
Кодирование/декодирование URL
Инструмент кодирования и декодирования URL-строк
Генератор MD5-хеша
Инструмент для генерации MD5-хеша
Генератор SHA-256-хеша
Инструмент для генерации SHA-256-хеша
Генератор SHA1-хеша.
Инструмент для генерации SHA1-хеша.
Hex-кодер и декодер
Инструмент кодирования/декодирования шестнадцатеричных строк
Бинарный кодер/декодер
Инструмент кодирования/декодирования двоичных строк
AES‑шифратор и дешифратор
Инструмент симметричного шифрования и дешифрования AES
RSA инструмент шифрования и дешифрования
Инструмент асимметричного шифрования RSA
Генератор HMAC
Инструмент генерации HMAC
Поиск IP-адреса
Поиск геолокации IP-адреса и информации о сети
Конвертер миллисекунд
Преобразование между миллисекундным штампом времени и строкой в формате yyyy-MM-dd HH:mm:ss.