Журнал изменений

Справочник по конфигурации Nginx

Справочная таблица часто используемых фрагментов конфигурации Nginx, быстрый поиск и копирование кода конфигурации

Базовая конфигурация
7

Автоматическое установление количества рабочих процессов (обычно равно количеству ядер 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
6

Базовая конфигурация блока 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
7

Точное совпадение пути

location = /path {
    # точное совпадение
}

Префиксное совпадение пути

location /api/ {
    # префиксное совпадение
}

Совпадение с регулярным выражением

location ~ \.php$ {
    # регулярное совпадение (регистрозависимое)
}

Независимое от регистра регулярное совпадение

location ~* \.\(jpg|jpeg|png|gif\)$ {
    # регулярное совпадение (независимое от регистра)
}

Приоритетное сопоставление префикса (выше, чем регулярное выражение)

location ^~ /images/ { # Приоритетное сопоставление префикса }

Порядок попытки файлов (часто используется в приложениях SPA)

location / { try_files $uri $uri/ /index.html; }

Доступ только для внутренних запросов

location /internal/ { internal; }
Обратный прокси
7

Базовая конфигурация обратного прокси

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/HTTPS
7

Базовая конфигурация 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;
Конфигурация кэширования
5

Кэширование статических ресурсов

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
4

Базовая конфигурация сжатия 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;
Безопасная конфигурация
6

Конфигурация 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;
}
Конфигурация журнала
6

Конфигурация журнала доступа

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;
Оптимизация производительности
5

Кэш дескрипторов файлов

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;

📖О инструменте

Справочник по конфигурации Nginx — это инструмент быстрого поиска конфигурации, разработанный для веб-разработчиков и системных администраторов. Он охватывает все распространенные фрагменты конфигурации от базовых до продвинутых, организованные по функциональным категориям, с поддержкой быстрого поиска и копирования одним нажатием. Независимо от того, являетесь ли вы новичком в Nginx или опытным инженером по эксплуатации, вы сможете быстро найти нужный фрагмент конфигурации.

Особенности

1
10 основных категорий, охватывающих все распространенные сценарии конфигурации Nginx
2
Более 60 распространенных фрагментов конфигурации, охватывающих все уровни — от базовых до продвинутых
3
Поддержка поиска по ключевым словам для быстрого поиска нужной конфигурации
4
Одно нажатие для копирования кода конфигурации, повышение эффективности работы
5
Ясные китайские объяснения, легко понять и изучить
6
Просмотр по категориям и фильтрация, быстрое нахождение соответствующей конфигурации
7
Адаптивный дизайн, поддержка просмотра на мобильных устройствах
8
Локальное выполнение, можно использовать без подключения к интернету

Частые вопросы

🔗Связанные инструменты

Парсер Cron-выражений

Проверка синтаксиса Cron и просмотр предстоящих времен выполнения.

Инструменты разработчика
Использовать сейчас

JSON в CSV

Преобразование данных JSON в формат CSV

Конвертер
Использовать сейчас

JSON в YAML

Преобразование данных JSON в формат YAML

Конвертер
Использовать сейчас

Конвертер JSON в XML

Преобразование данных JSON в формат XML

Конвертер
Использовать сейчас

Преобразование YAML в JSON.

Преобразование YAML-конфигурации в данные в формате JSON.

Конвертер
Использовать сейчас

JSON-форматтер

Форматирование, валидация и сжатие JSON-данных

JSON-утилиты
Использовать сейчас

Визуализация JSON

Показать данные JSON в виде древовидной структуры

JSON-утилиты
Использовать сейчас

Генератор JSON-данных

Генерация имитированных JSON-данных для тестирования

JSON-утилиты
Использовать сейчас

Переводчик i18n JSON

Однократно перевести весь JSON-файл. Вставьте ваш базовый контент, выберите целевой язык; инструмент будет вызывать ваш OpenRouter API с использованием плоских ключей

JSON-утилиты
Использовать сейчас

Сравнение различий JSON

Сравнение различий между двумя 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.

Инструменты времени
Использовать сейчас
Показано 27 инструментов, всего доступно 28
    Справочная таблица конфигурации Nginx - быстрый обзор распространенных конфигураций - IT Tools Collection