Live-данные · обновлено 19 июля 2026 г.

Nginx

Nginx — высокопроизводительный веб-сервер, reverse proxy, балансировщик нагрузки и HTTP-кэш. Стандартный компонент DevOps-стека: в вакансиях почти всегда соседствует с Docker, Kubernetes и Linux.

КВКузнецов Вячеслав·Технический редактор·DevOps/SRE-техлид · опыт 10+ лет
Вакансий
250
активных в Москве
Медиана зарплаты
241 тыс. ₽
n = 73 вакансии с указанной зарплатой
Индекс спроса
79/100
#69 из 332 навыков
Доля IT-рынка
3.6%
25 профессий

Коротко о навыке

Nginx (произносится «энджинкс») — многофункциональный сервер с архитектурой event-driven, позволяющей обрабатывать десятки тысяч одновременных соединений при минимальном потреблении памяти. В production nginx используется не как самостоятельный веб-сервер, а как прослойка перед приложением: принимает запросы извне, терминирует SSL, балансирует нагрузку между экземплярами приложения и защищает от флуда через rate limiting.

На рынке труда nginx — базовое требование инфраструктурных ролей: чаще всего его спрашивают с DevOps-инженеров и системных администраторов, в парах — Docker, Kubernetes и Ansible. Знание nginx обязательно для любого специалиста, работающего с серверной инфраструктурой.

Что такое Nginx

Что делает

Принимает HTTP/HTTPS-запросы, проксирует их к приложению (proxy_pass), балансирует между несколькими серверами, терминирует SSL и раздаёт статические файлы — быстрее приложения.

Кто использует

DevOps-инженеры, системные администраторы и SRE-инженеры: nginx применяется как входная точка любого production-сервиса, обрабатывающего HTTP-трафик.

Позиция на рынке

Базовое требование инфраструктурных вакансий. Доминирующая роль — DevOps-инженер; в парах чаще всего Docker, Kubernetes и Linux.

Что такое Nginx

Nginx — веб-сервер с открытым исходным кодом, созданный Игорем Сысоевым в 2004 году для решения проблемы C10K — одновременного обслуживания десяти тысяч соединений. В отличие от Apache с thread-per-connection моделью, nginx использует event-driven архитектуру: один worker-процесс обрабатывает тысячи соединений через неблокирующий I/O. Nginx обслуживает более 30% веб-сайтов мира и является стандартным reverse proxy в Kubernetes-кластерах через Ingress Controller.

Reverse Proxy и его роль

Reverse proxy — промежуточный сервер между клиентом и приложением. Nginx принимает запрос, пересылает его к upstream-серверу (приложению), получает ответ и возвращает клиенту. Это позволяет: скрыть внутреннюю топологию, централизовать SSL, добавить кэширование и балансировку без изменения приложения. Директива proxy_pass указывает адрес upstream-сервера.

Upstream и балансировка нагрузки

Upstream-блок описывает группу серверов-бэкендов. Nginx распределяет запросы между ними по выбранному алгоритму: round-robin (по умолчанию), least_conn (на сервер с минимумом активных соединений), ip_hash (привязка клиента к серверу по IP). Для каждого сервера можно указать weight (вес), max_fails и fail_timeout для автоматического выключения при сбоях.

Понятия / Карта

Из чего состоит Nginx

Понятие Что это Что нужно уметь
Worker process
Рабочий процесс nginx, который обслуживает соединения — обычно по одному на ядро процессора.
Настраивать worker_processes auto и worker_connections, понимать событийную модель epoll.
Server block
Описание одного сайта или сервиса: на каком порту слушать и какое доменное имя обслуживать.
Разносить виртуальные хосты по файлам conf.d/, управлять приоритетом выбора server_name.
Location block
Правило: какие адреса страницы как обрабатывать.
Понимать приоритет точных, префиксных и regex-локаций; отлаживать, какой location сработал.
proxy_pass
Команда «передай этот запрос другому серверу и верни его ответ клиенту».
Настраивать заголовки X-Real-IP/X-Forwarded-For, таймауты и буферизацию для стабильного прокси.
upstream
Список серверов, между которыми nginx распределяет запросы.
Выбирать алгоритм балансировки, задавать weight/max_fails/backup, выводить серверы из ротации без даунтайма.
limit_req_zone
Ограничитель: не больше стольких-то запросов в секунду с одного адреса.
Подбирать rate и burst под реальный трафик, разделять зоны для API и статики, отдавать корректный 429.
Механика / Работа

Как nginx обрабатывает запрос

От входящего TCP-соединения до ответа клиенту — nginx выполняет несколько шагов без блокировки потока.

Шаг 01

Приём и TLS

Worker-процесс принимает соединение через epoll/kqueue и выполняет TLS-рукопожатие без блокировки других соединений.

Шаг 02

Маршрутизация

Nginx находит server-блок по server_name и location-блок по URI — за несколько микросекунд без обращения к приложению.

Шаг 03

Проксирование

Nginx передаёт запрос к upstream-серверу, буферизует ответ и отправляет клиенту — изолируя приложение от медленных клиентов.

Карьера / Роли

Карьерные треки с Nginx

Nginx переносится между ролями: DevOps-инженер, Системный администратор, Инженер поддержки. В одном треке этот навык может быть основным рабочим инструментом, а в другом - сильным прикладным усилителем основной специализации.

Роли с Nginx за период

DevOps-инженер — самый заметный профиль в распределении ролей по навыку.

Ещё 7 ролей используют Nginx

Текущий срез показывает активные вакансии сейчас. Распределение по ролям рассчитано по расширенной исторической выборке, поэтому значения могут быть выше текущего количества активных вакансий.

Практика / Задачи

Частые задачи с Nginx

Nginx ценен не абстрактным знанием инструмента, а повторяющимися рабочими задачами — ниже они разобраны так, как встречаются в реальной работе.

Задача 01

Статические файлы

Настроить nginx для раздачи HTML/JS/CSS-файлов с правильной обработкой маршрутов SPA.

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.html;

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

    location ~* \.(js|css|png|jpg|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}
Задача 02

Reverse proxy к приложению

Проксировать запросы к Python/Node.js-приложению с передачей IP-адреса клиента.

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        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_read_timeout 60s;
        proxy_buffering on;
    }
}
Задача 03

SSL через Let's Encrypt

Настроить HTTPS с редиректом с HTTP и заголовком HSTS для безопасного соединения.

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    add_header Strict-Transport-Security "max-age=31536000" always;
}

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}
Задача 04

Балансировка нагрузки

Распределить трафик между несколькими экземплярами приложения с автоматическим выключением упавшего сервера.

upstream app_pool {
    least_conn;
    server 10.0.0.1:8000 weight=3 max_fails=3 fail_timeout=30s;
    server 10.0.0.2:8000 weight=2 max_fails=3 fail_timeout=30s;
    server 10.0.0.3:8000 backup;
}

server {
    listen 80;
    location / {
        proxy_pass http://app_pool;
    }
}
Задача 05

Gzip-сжатие

Включить сжатие ответов для уменьшения трафика — особенно эффективно для JSON и HTML.

http {
    gzip on;
    gzip_types
        text/plain
        text/css
        application/json
        application/javascript
        text/xml;
    gzip_min_length 1024;
    gzip_comp_level 6;
    gzip_vary on;
    gzip_proxied any;
}
Задача 06

Rate limiting

Ограничить количество запросов по IP для защиты API от брутфорса и флуда.

http {
    limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
    limit_conn_zone $binary_remote_addr zone=addr:10m;
}

server {
    location /api/ {
        limit_req zone=api burst=20 nodelay;
        limit_conn addr 10;
        proxy_pass http://127.0.0.1:8000;
    }
}
Практика / Ошибки

Ошибки новичков

Ошибка 01

Не передавать X-Real-IP в proxy

Забыть proxy_set_header X-Real-IP $remote_addr — приложение видит адрес nginx (127.0.0.1) вместо реального IP клиента. Это ломает логи, rate limiting на уровне приложения и геолокацию.

Ошибка 02

Слишком короткий proxy_read_timeout

Оставить proxy_read_timeout 60s по умолчанию для медленных операций (экспорт, AI-обработка). Nginx разрывает соединение до того, как приложение завершило работу — клиент видит 502/504.

Ошибка 03

Отдавать статику через proxy_pass

Проксировать все запросы, включая JS/CSS/изображения, к приложению вместо раздачи напрямую. Nginx отдаёт статику в 10–100 раз быстрее — использовать location ~* \.(js|css|...)$ { root /var/www; }.

Ошибка 04

Хранить все конфиги в nginx.conf

Писать все server-блоки в один файл nginx.conf вместо include conf.d/*.conf. При разрастании становится неуправляемым — использовать отдельные файлы на каждый виртуальный хост.

Рынок / Контекст

Nginx в современных IT-проектах: контекст спроса

Главная роль в вакансиях с nginx — DevOps-инженер; следом идут системные администраторы и инженеры поддержки. Nginx редко упоминается как самостоятельный навык — он всегда часть инфраструктурного стека рядом с Docker, Kubernetes, Ansible и Prometheus. Спрос на nginx движется вместе со спросом на DevOps и SRE в целом: без него сложно объяснить, как трафик попадает в production-сервис.

Закрывает рабочую задачу

Nginx ценят не за знание термина, а за конкретную пользу в ежедневной работе команды.

Живёт в реальном стеке

Навык редко существует изолированно: он встроен в процессы, инструменты и смежные роли, поэтому спрос держится дольше.

Даёт прикладную самостоятельность

Специалист с Nginx быстрее проверяет гипотезы, решает задачи и меньше зависит от ручной передачи работы между людьми.

Сигнал рынка
Стабильный спрос

Nginx формирует устойчивый спрос внутри своего рабочего сегмента.

Рынок / Спрос

Спрос на Nginx на рынке

Nginx сохраняет устойчивый прикладной спрос на рынке: 250 активных вакансий, #69 по рынку, 3.6% IT-вакансий. Ниже показано число открытых вакансий на конец каждого месяца: это исторический ряд по состоянию на конец месяца, а не текущий срез рынка на сегодня.

Сила спроса
Стабильный спрос
250
активных вакансий сейчас

#69 по рынку • 3.6% IT-вакансий

Месяц к месяцу
336
июль 2026 — предварительный накопительный срез

-42 вакансий и -11% к предыдущему месяцу.

Доход / Уровни

Зарплаты в вакансиях, где требуется Nginx

Nginx сам по себе не тарифицируется — зарплату определяет роль. Чаще всего его спрашивают с DevOps-инженеров, чья медиана — среди самых высоких в инфраструктурных специальностях. Доход растёт при знании Kubernetes, Ansible, Terraform и...

Медиана рынка
Ограниченная точность
241 000
₽ / месяц

73 вакансий с зарплатой в расширенной зарплатной выборке

Ориентир по грейду
281 000
₽ / месяц

Основной зарплатный ориентир по Senior-вакансиям

Основной уровень
Senior
по структуре рынка

Senior - основной уровень рынка (53%)

Связи / Навыки

Навыки в связке с Nginx

Nginx редко живёт изолированно: чаще всего рынок видит его рядом с Linux, Docker, PostgreSQL. Самая плотная связка сейчас - Linux: оба навыка встречаются вместе в 77% вакансий.

Главная связка: Linux • 77% вакансий. Показываем общерыночные связки Nginx: не junior-минимум из блока выше, а навыки, которые чаще всего встречаются рядом с ним в одной вакансии.

Рабочий стек вокруг Nginx

навыки, которые рынок чаще всего видит рядом в одной вакансии

Навык Зачем рядом Доля
Одна из самых плотных рыночных связок рядом с Nginx.
77%
Часто встречается рядом с Nginx в одном рабочем сценарии.
70%
Часто встречается рядом с Nginx в одном рабочем сценарии.
63%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
55%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
51%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
50%

Связки, которые усиливают доход

не базовый минимум, а более сильные комбинации стека

1
Kubernetes
n = 30
+19% 287 000 ₽
2
CI/CD
n = 46
+17% 282 000 ₽
3
PostgreSQL
n = 45
+14% 274 000 ₽
Вход / Старт

Порог входа

Сейчас на рынке 19 активных junior-вакансий с Nginx. Это 9.8% всех вакансий по навыку, поэтому для старта важнее всего смотреть на реальный объём junior-окна и на стек, который рынок ждёт рядом.

Junior-вакансии сейчас
19
активных вакансий

9.8% всех вакансий по навыку • Senior / Junior 5.4x

Доля junior
9.8%
% всех вакансий по навыку

Вход возможен, но рынок ждёт уже собранный стартовый стек.

Что нужно на старте

Стартовый стек

22
навыков в медианной вакансии

Медианная вакансия с Nginx ожидает около 22 навыков в стеке. Это широкий стартовый набор: рынок обычно ищет не один изолированный инструмент, а рабочую комбинацию соседних навыков.

Чаще всего требуют вместе

навыки из junior-вакансий, где встречается Nginx

Навык Junior-вакансии
15
15
SQL
12
10
Git
10
Карьера / Резюме

Nginx в резюме: что значит "знаю Nginx"

В резюме важно показать не просто «знание nginx», а конкретный уровень: умеете ли вы только раздавать статику или можете настроить балансировку и кэш под нагрузку.

Уровень Что значит Что показать
Beginner
Могу запустить nginx, настроить раздачу статики, понимаю server/location блоки
Поднял nginx, прописал root и index, добавил простой location для /api
Junior developer
Настраиваю reverse proxy перед бэкендом, SSL-сертификат, базовые заголовки
Настроил proxy_pass на Node.js-приложение, подключил Certbot, выставил HSTS
Middle developer
Реализую балансировку нагрузки, proxy_cache, rate limiting, gzip
Upstream с least_conn, кэш статики на 7 дней, limit_req для API 100 req/s
Senior developer
Тюню под высокую нагрузку: worker_processes, keepalive, TLS-оптимизация
Обработка 50k rps на 4-ядерном сервере, OCSP stapling, TLS session cache
Сравнение / Инструменты

Nginx в DevOps-стеке

Стандартные пары nginx в production-инфраструктуре.

Инструмент За что отвечает Когда нужен Граница

Docker

Nginx работает контейнером перед контейнерами приложения

В любом контейнеризованном деплое с внешним HTTP-трафиком

Сетевые настройки Docker (bridge, DNS) добавляют свой слой отладки.

Kubernetes Ingress

Маршрутизация HTTP-трафика внутрь кластера

Когда сервисы в k8s нужно открыть наружу по HTTP/HTTPS

Ingress-манифесты описывают правила, но тонкая настройка идёт через аннотации контроллера.

Certbot + Let's Encrypt

Бесплатные SSL-сертификаты с автопродлением

Для любого публичного домена

Wildcard-сертификаты требуют DNS-челленджа — сложнее обычного HTTP-варианта.

Prometheus + Grafana

Мониторинг метрик nginx (RPS, коды ответов, латентность)

Когда нужно видеть деградацию до жалоб пользователей

Штатный stub_status беден — для детальных метрик нужен exporter или VTS-модуль.

Ansible

Автоматическая установка и раскатка конфигов nginx

Когда серверов больше одного и конфиги должны быть воспроизводимы

Не проверяет семантику конфига — nginx -t в хендлере обязателен.

Навык / Применение

Где используется Nginx

Nginx применяется как входная точка любого HTTP-сервиса: от небольшого VPS до кластера Kubernetes с тысячами экземпляров приложения.

Сценарий 01

Reverse proxy

Reverse proxy перед приложением: nginx принимает HTTPS-запросы, терминирует SSL и передаёт их к Python/Node.js/Java-сервису по HTTP на loopback — стандартная схема...

Сценарий 02

Балансировка нагрузки

Балансировка нагрузки: upstream-блок со списком экземпляров приложения + least_conn позволяет nginx распределять трафик без внешнего балансировщика, автоматически...

Сценарий 03

Kubernetes Ingress

Kubernetes Ingress Controller: nginx-ingress-controller реализует правила маршрутизации Ingress-ресурсов k8s — это самый распространённый способ экспонировать...

Сценарий 04

Раздача статики

Раздача статики и CDN-offload: nginx отдаёт собранные фронтенд-файлы (HTML, JS, CSS) напрямую, не нагружая API-сервер; expires max настраивает долгосрочное...

По направлениям

Nginx заметен в 2 направлениях рынка с долей выше 5%.

Направление Контекст Доля
Инфраструктура
Балансировка, Ingress Controller, оптимизация соединений.
62.3%
Разработка
Проксирование бэкендов, отдача статики, HTTPS локально.
28.6%
Менеджмент
Мониторинг доступности и логов, управление конфигурациями.
2.7%
Безопасность
Часть спроса по навыку сосредоточена в этом направлении.
2.3%
Направления показывают, в каких частях IT-рынка навык заметен чаще всего, без разбивки по ролям.
Инструмент / Возможности

Что умеет nginx

Nginx выполняет несколько ролей одновременно — это делает его стандартным компонентом любого production-сервиса.

Reverse Proxy

Принимает запросы, проксирует к приложению, передаёт заголовки клиента (IP, Host) и буферизует ответ — изолируя приложение от прямого доступа из интернета.

SSL-терминация

Nginx обрабатывает HTTPS-соединение и передаёт запрос к приложению по HTTP — приложение не знает о SSL, сертификаты управляются централизованно.

Балансировка нагрузки

Upstream-блок с несколькими серверами, алгоритм least_conn и автоматическое выключение упавших серверов — готовая балансировка без отдельного инструмента.

Rate Limiting

Limit_req_zone ограничивает запросы по IP, токену или любому переменному — защита от брутфорса и флуда без изменения кода приложения.

Сравнение / Контекст

Nginx vs Apache vs Traefik

Три популярных веб-сервера — у каждого своя ниша в современном DevOps-стеке.

Nginx vs Apache

Apache создаёт поток или процесс на каждое соединение — просто, но дорого под нагрузкой. Nginx держит тысячи соединений в одном событийном цикле и потому стал стандартом для высоконагруженных...

Nginx vs Traefik

Traefik сам находит сервисы в Docker и Kubernetes через метки и аннотации — минимум конфигурации, встроенный Let's Encrypt. Nginx требует явных конфигов, но гибче, предсказуемее и лучше...

Nginx vs HAProxy

HAProxy — специализированный балансировщик уровня TCP/HTTP с более тонкой настройкой health-check и алгоритмов. Nginx — универсал: статика, прокси, SSL, кэш в одном инструменте. Для чистой...

Практика / Workflow

Как Nginx используется в реальном проекте

Этап Что происходит Артефакт
1 Приём соединения
nginx worker
TCP/TLS-соединение принято
2 SSL-терминация
nginx ssl
Запрос расшифрован, передаётся по HTTP
3 Выбор server-блока
server_name matching
Найден нужный virtual host
4 Location matching
location rules
Определено правило обработки URI
5 Rate limiting
limit_req
Запрос разрешён или отклонён (429)
6 Проксирование
proxy_pass
Запрос передан upstream-серверу
7 Возврат ответа
nginx buffer
Ответ буферизован и отправлен клиенту
Инструмент / Оркестрация

Nginx + Flask: запуск через Docker Compose

Nginx часто запускается в Docker-окружении как reverse proxy для связки контейнеров.

services / компоненты стека

Nginx, бэкенд (Python/Node/PHP), БД (Postgres/MySQL), кеш (Redis). Каждый сервис — отдельный контейнер.

networks / связи

Обычно создаётся одна внутренняя сеть (backend), где Nginx видит бэкенд по имени сервиса.

volumes / хранилище

Монтируется папка со статикой (фронтенд) и конфиг Nginx (nginx.conf или conf.d).

depends_on / healthcheck

Nginx зависит от бэкенда. Healthcheck для Nginx: проверка порта 80/443.

Пример: типовой стек Nginx + Flask

docker-compose.yml с сервисами nginx, flask-app, postgres. Nginx проксирует /api на flask-app:5000.

Рекомендации по production

Использовать nginx:alpine, ограничить ресурсы, добавить healthcheck, включить логирование в JSON.

Практика / Nginx

Nginx: лучшие практики и типичные ошибки новичков

Практика 01

Отдельные server блоки для доменов

Кладите каждый домен в /etc/nginx/sites-available/ и делайте симлинк в sites-enabled/ — так проще управлять.

Практика 02

Отключайте server_tokens

Директива server_tokens off; скрывает версию Nginx от злоумышленников.

Практика 03

worker_processes = auto

Nginx сам подберёт число воркеров под количество ядер CPU.

Практика 04

Кешируйте статику

location ~* \.(js|css|png|jpg)$ { expires 30d; } — уменьшает нагрузку на сервер.

Практика 05

Используйте gzip

gzip_min_length 1000; gzip_types text/plain application/json; — сжимает ответы.

Практика 06

Лимитируйте скорость на критичных эндпоинтах

Rate limiting на /api/login защищает от брутфорса.

Практика 07

Мониторьте метрики

Включите stub_status модуль для Prometheus или используйте nginx-prometheus-exporter.

Практика 08

Принудительный HTTPS

Редирект с 80 на 443: return 301 https://$host$request_uri;

Практика / Безопасность

Безопасность Nginx: что нельзя делать

Риск 01

Nginx от root

Используйте systemd-юнит с User=nginx и CapabilityBoundingSet, чтобы не запускать мастер-процесс от root.

Риск 02

server_tokens on

Отключайте server_tokens (server_tokens off;), чтобы не раскрывать версию Nginx.

Риск 03

Директория с конфигами в корне

Не размещайте /etc/nginx в корне сайта — доступ к конфигурации даёт атакующему полный контроль.

Риск 04

PROXY-протокол без белого списка

Разрешайте proxy_protocol только с доверенных IP, иначе злоумышленник подменит source IP.

Риск 05

Слабые SSL-цифры

Отключайте SSLv3, TLSv1.0, TLSv1.1. Используйте ssl_ciphers HIGH:!aNULL:!MD5;.

Риск 06

Доверие user-agent'ам

Блокировка по User-Agent (if ($http_user_agent ~* bot)) легко обходится подменой заголовка.

Риск 07

Пароли в открытом виде

Для базовой аутентификации используйте htpasswd -B -c — флаг -B задаёт bcrypt (без него по умолчанию используется более слабый MD5/apr1).

Риск 08

proxy_buffering off без нужды

Не выключайте буферизацию без причины — это делает сервер уязвимым к slowloris.

Навык / Границы

Когда Nginx не нужен

Nginx vs Apache

Apache удобнее для shared-hosting с .htaccess и PHP через mod_php. Nginx выигрывает на высоконагруженных сервисах, reverse proxy и статике. В современных проектах nginx — стандарт.

Nginx не заменяет API Gateway

Nginx умеет базовую маршрутизацию и rate limiting, но не имеет встроенной аутентификации, трансформации запросов, метрик API или портала разработчика. Для этого — Kong, AWS API Gateway, Traefik.

Nginx vs Traefik в Kubernetes

Traefik автоматически обнаруживает сервисы в k8s через аннотации. Nginx требует явных Ingress-манифестов, но более гибок в конфигурации и лучше задокументирован. Nginx Ingress Controller — самый распространённый выбор.

Производительность и CPU

Nginx эффективен для I/O, но не для CPU-тяжёлых задач (шифрование, сжатие больших файлов). Для высоконагруженного SSL — аппаратное ускорение или выделенный TLS-терминатор.

Будущее / Роль

Перспективы Nginx

Перспективы Nginx завязаны не только на текущем спросе, но и на том, как навык встраивается в новые платформы, инструменты и рабочие контуры.

Сигнал 01

HTTP/3 и QUIC

Nginx Plus поддерживает HTTP/3 (QUIC). По мере распространения HTTP/3 nginx с поддержкой QUIC обеспечит более быстрое установление соединений и устойчивость к потерям пакетов.

Сигнал 02

OpenResty и Lua

OpenResty (nginx + LuaJIT) позволяет писать бизнес-логику прямо в конфиге nginx. Kong — популярный API Gateway — построен на OpenResty. Это направление развивает nginx в...

Сигнал 03

Service Mesh и eBPF

В облачно-нативных архитектурах nginx конкурирует с Envoy (используется в Istio и Cilium). eBPF-based решения могут обрабатывать трафик на уровне ядра, минуя nginx —...

Практика / Портфолио

Портфолио с Nginx: с чего начать

Проект 01

Production-прокси с SSL и балансировкой

Nginx как reverse proxy перед двумя экземплярами FastAPI: upstream с least_conn, SSL через Let's Encrypt, rate limiting, gzip, логи в JSON для Loki. Всё в Docker Compose.

Проект 02

Статический хостинг с CDN-паттерном

Nginx отдаёт собранный React-SPA с хэшированными именами файлов: expires max для ассетов, index.html без кэша, security headers, HTTPS redirect.

Обучение / Маршрут

Как изучить Nginx

Базовые навыки nginx — reverse proxy, SSL, gzip — осваиваются за 2–3 дня практики с реальным сервером. Продвинутые темы (upstream-балансировка, Lua, OpenResty, Kubernetes Ingress) требуют нескольких недель.

Этап 01

Установка и первый server-блок

Установить nginx через apt/yum, разобрать структуру nginx.conf: http, server, location. Настроить раздачу статических файлов через root и try_files.

Этап 02

Reverse proxy

Настроить proxy_pass к локальному приложению, добавить proxy_set_header для X-Real-IP и X-Forwarded-For, proxy_read_timeout для медленных ответов —...

Этап 03

SSL через Let's Encrypt

Установить Certbot, получить сертификат командой certbot --nginx, настроить автоматическое обновление. Добавить redirect с HTTP на HTTPS и HSTS-заголовок.

Этап 04

Балансировка и upstream

Описать upstream-блок с несколькими серверами, выбрать алгоритм балансировки, настроить health check через max_fails и fail_timeout.

Курсы · по данным рынка

Где учить nginx

Соответствие — доля тем навыка, которые охватывает программа курса

Практика / Первый запуск

Как начать изучать nginx

Трёхшаговый путь от нуля до production-конфига.

Шаг 01

Установить и разобрать структуру конфига

Установить nginx (apt install nginx), изучить nginx.conf: http, server, location. Настроить раздачу файла и убедиться, что curl возвращает 200.

Шаг 02

Настроить reverse proxy с SSL

Запустить простое приложение (uvicorn, node), настроить proxy_pass, получить сертификат через Certbot. Это покрывает 80% реальных задач.

Шаг 03

Запустить в Docker и добавить балансировку

Создать Docker Compose с nginx + двумя экземплярами приложения, описать upstream-блок, настроить health check. Это готовый production-паттерн.

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

Вопросы и ответы

В чём разница между nginx и Apache?

Apache создаёт отдельный поток или процесс на каждое соединение (thread-per-connection), nginx обрабатывает тысячи соединений в одном event loop. nginx быстрее на статике и reverse proxy; Apache удобнее для .htaccess и PHP.

Нужно ли nginx если есть Kubernetes?

Да — nginx-ingress-controller является стандартным Ingress Controller в k8s. Он управляет маршрутизацией HTTP-трафика в кластере, SSL-терминацией и rate limiting на уровне Kubernetes.

Как nginx работает с Docker?

Nginx запускается как отдельный контейнер в Docker Compose, монтирует кастомный nginx.conf через volume и проксирует трафик к контейнерам приложения по имени сервиса в Docker-сети.

Как правильно настроить SSL в nginx?

Использовать Certbot для получения Let's Encrypt-сертификата (certbot --nginx -d example.com), настроить redirect с HTTP на HTTPS, включить TLSv1.2/1.3, добавить HSTS-заголовок. Certbot сам обновляет сертификаты каждые 90 дней.

Что такое upstream в nginx?

Upstream-блок описывает группу серверов-бэкендов, между которыми nginx распределяет запросы. Поддерживаются алгоритмы round-robin, least_conn и ip_hash, а также автоматическое выключение упавших серверов через max_fails.

Как ограничить количество запросов в nginx?

Использовать limit_req_zone в http-блоке для создания зоны с rate (например, 10r/s по IP), затем limit_req zone=api burst=20 nodelay в нужном location. burst разрешает кратковременные всплески без ошибки 429.

Nginx vs Traefik — что выбрать?

Traefik автоматически обнаруживает сервисы Docker/k8s через метки и аннотации — удобен для небольших команд. Nginx требует явной конфигурации, но гибче, лучше задокументирован и имеет более широкую экосистему. nginx-ingress-controller — самый распространённый Ingress в production k8s.