МК

Nginx

Nginx (читается «энджинкс») — это веб-сервер и обратный прокси (reverse proxy). Он принимает входящие HTTP-запросы и направляет их к вашему приложению. Nginx стоит «перед» вашим приложением как охранник на входе: фильтрует трафик, раздаёт статику, терминирует SSL и балансирует нагрузку между серверами.

Почему не отдавать трафик напрямую в Node.js или Python? Потому что они не предназначены для этого. Node.js обрабатывает один запрос за раз в одном потоке. Nginx обрабатывает тысячи одновременных подключений при минимальном расходе памяти. Статические файлы (картинки, CSS, JS) Nginx отдаёт в 10 раз быстрее, чем ваше приложение.

Nginx умеет: раздавать статику, проксировать запросы к backend-приложениям, балансировать нагрузку (round-robin, least connections, ip-hash), терминировать SSL/TLS, кешировать ответы, ограничивать количество запросов (rate limiting), сжимать ответы (gzip).

По данным W3Techs, Nginx используется на 34% всех сайтов в мире — это самый популярный веб-сервер. Его используют Netflix, Dropbox, WordPress.com, Airbnb.

Ключевые преимущества

  • Обратный прокси: стоит перед приложением и управляет трафиком
  • Тысячи одновременных подключений при минимальном расходе памяти
  • Раздача статики в 10 раз быстрее, чем application-сервер
  • Балансировка нагрузки между несколькими серверами
  • SSL-терминация, кеширование, rate limiting, gzip

Примеры

Типичная конфигурация: Nginx принимает HTTPS-запросы, терминирует SSL, отдаёт статику (картинки, JS, CSS) из папки, а API-запросы проксирует в Node.js на порт 3000. Балансировка: 3 инстанса приложения за одним Nginx — если один упал, трафик идёт к двум оставшимся. Rate limiting: не больше 100 запросов в минуту с одного IP — защита от DDoS.

Когда это нужно

Nginx нужен практически всегда, когда ваше приложение доступно из интернета. Без Nginx допустимо только для разработки и прототипов. В продакшене Nginx — стандарт: SSL, статика, балансировка, защита от перегрузки. Исключение — serverless (Vercel, AWS Lambda), где Nginx заменяет инфраструктура платформы.

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

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

Nginx или Apache — что лучше?

Nginx быстрее при высоких нагрузках благодаря событийной модели (один процесс обрабатывает тысячи соединений). Apache использует потоки/процессы на каждое соединение — при 10 000 одновременных подключений расходует гораздо больше памяти. Для новых проектов — Nginx. Apache оправдан, если нужны .htaccess-файлы или специфичные модули.

Нужно ли использовать Nginx с Docker?

Да, если приложение доступно из интернета. Nginx обычно запускается отдельным контейнером, который проксирует трафик к контейнерам приложения. В Kubernetes аналог — Ingress-контроллер (часто на базе того же Nginx). Исключение — платформы вроде Vercel, где прокси встроен в платформу.

Сложно ли настроить Nginx?

Базовая конфигурация (прокси + SSL) — 15-20 строк и 30 минут работы. Let's Encrypt выдаёт бесплатные SSL-сертификаты, Certbot автоматизирует обновление. Для стандартных задач достаточно скопировать и адаптировать готовые конфиги. Сложности начинаются при тонкой настройке кеширования и балансировки для высоконагруженных сервисов.

Готовы начать проект?

Расскажите о задаче — мы предложим решение, сроки и стоимость. Первая консультация бесплатна.

30 минут · Бесплатно · Без обязательств