Nginx. Принципы работы
Принципы работы веб-сервера nginx
Версии nginx
Есть две версии nginx
- Основная - это последняя версия
nginxс новыми функционалом (на текущий момент (январь 2026) это1.29.4) - Стабильная - это версия, которая нацелена на стабильность и безопасность. Новый функционал не добавляется. Рекомендуется ставить ее. (на январь 2026 это https://nginx.org/ru/CHANGES.ru-1.28)
Все остальные версии являются устаревшими
На рабочих серверах рекомендуется использовать стабильную версию
Master Worker
nginx использует модель главный процесс master и несколько рабочих процессов worker
Например, увидим это сразу все процессы nginx
1
2
3
4
5
6
ps -a | grep nginx
1 root 0:00 nginx: master process nginx -g daemon off;
29 nginx 0:00 nginx: worker process
30 nginx 0:00 nginx: worker process
31 nginx 0:00 nginx: worker process
32 nginx 0:00 nginx: worker process
masterпроцесс- Запускается от
root - Читает и проверяет конфиги
- Слушает порты
80и443 - Управляет
workerпроцессами - Обрабатывает сигналы, например при мягкой перезагрузки
nginx -s reloadсоединения не теряются
- Запускается от
workerпроцесс- Запускается от имени обычного пользователя
nginx - Каждый
workerработает независимо и обрабатывают все сетевые соединения - Кол-во
worker_processesобычно равно ядрамCPU, в примере выше их 4
- Запускается от имени обычного пользователя
Каждый рабочий процесс использует механизм опроса событий. Постоянно в цикле опрашивает систему на возможные события.
Как примерно идет обработка запроса:
- Получили запрос от клиента
- Рабочий процесс отправляет запрос на бекенд, например
php-fpm - Освободившись он сразу же обрабатывает другой запрос
- Когда бекенд ответил, об этом уведомляется рабочий процесс
- Рабочий процесс читает ответ и отправляет его клиенту
Благодаря такой архитектуре, один рабочий процесс может одновременно обрабатывать тысячи соединений.
ВАЖНО. Мастер-процесс НЕ обрабатывает сетевые запросы от клиентов. Его работа это управление.
Роли сервера
- Отдача статики. Базовая функция сервера отдавать статические файлы как они есть
html,css,js,изображения, видео - Обратный прокси.
nginxсам решает какому приложению дальше отдать запрос.PHP,Python,Ruby,Node.js - Балансировщик нагрузки. Если бекендов несколько,
nginxможет распределять нагрузку между ними по кругу.
Оптимизация бизнеса, создание сайтов, разработка парсеров или интеграций.
Бесплатно расчитаю время разработки, предложу решение вашей задачи.
