DevOps и инфраструктура

Учебник Nginx для начинающих

20 уроков · 6 разделов · бесплатно, без регистрации

Полный практический курс по Nginx — самому популярному веб-серверу и обратному прокси современного веба. Ты разберёшься, как Nginx устроен изнутри (master/worker, событийная модель), научишься писать конфигурацию, раздавать статику, проксировать запросы на бэкенд, балансировать нагрузку, настраивать HTTPS и доводить всё до боевого продакшен-конфига.

Каждый урок построен по премиум-схеме: мотивация, разбор, раздел «как работает под капотом», частые ошибки и best practices. Внутри — ASCII-схемы потоков запросов, запускаемые Python-врезки, которые моделируют логику Nginx (round-robin, матчинг location, rate limiter), и реальные фрагменты nginx.conf.

Курс «Nginx: веб-сервер и прокси» состоит из 6 разделов и 20 уроков: Что такое Nginx и архитектура, Конфигурация и директивы, Раздача статики и location, Обратный прокси и upstream, Балансировка нагрузки и HTTPS, безопасность и оптимизация. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Что такое Nginx и архитектура

    1. Что такое Nginx и зачем он нужен

      Знакомство с Nginx: веб-сервер, обратный прокси, балансировщик. Зачем он стоит перед вашим приложением и какие задачи решает.

    2. Архитектура Nginx: master и worker-процессы

      Как устроен Nginx изнутри: master-процесс, рабочие процессы, разделение обязанностей и почему такая модель надёжна.

    3. Событийная модель: как Nginx держит тысячи соединений

      Неблокирующий ввод-вывод, цикл событий и epoll: почему один worker обслуживает тысячи клиентов без потока на каждого.

  2. 2 Конфигурация и директивы

    1. Структура конфигурации: контексты и директивы

      Как устроен nginx.conf: директивы, блоки, контексты main/events/http/server/location и наследование настроек.

    2. Где живут файлы Nginx и команды управления

      Структура /etc/nginx, sites-available и conf.d, проверка и перезагрузка конфига: nginx -t, reload, основные сигналы.

    3. Виртуальные хосты: несколько сайтов на одном сервере

      Блоки server, директивы listen и server_name, default_server и как Nginx выбирает нужный сайт по имени хоста.

  3. 3 Раздача статики и location

    1. Раздача статических файлов: root и alias

      Как Nginx отдаёт файлы с диска: директивы root и alias, формирование пути, index и обработка отсутствующих файлов.

    2. Магия location: приоритеты и модификаторы

      Модификаторы =, ^~, ~, ~* и префиксное совпадение: точный алгоритм, по которому Nginx выбирает location для запроса.

    3. Оптимизация статики: sendfile, gzip, кеш и expires

      Быстрая отдача статики: sendfile и tcp_nopush, сжатие gzip/brotli, open_file_cache и заголовки кеширования браузера.

  4. 4 Обратный прокси и upstream

    1. Обратный прокси: proxy_pass и поток запроса

      Как Nginx проксирует запросы на бэкенд: директива proxy_pass, схема прохождения запроса и роль слеша в proxy_pass.

    2. Заголовки, таймауты и буферы проксирования

      Тонкая настройка прокси: проброс заголовков, X-Forwarded-*, таймауты proxy_connect/read, буферизация и обработка ошибок бэкенда.

    3. Апстримы и keepalive: пул соединений к бэкенду

      Блок upstream как именованный пул бэкендов, переиспользование соединений через keepalive и настройка proxy для HTTP/1.1.

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

    1. Балансировка: round-robin, weight и least_conn

      Методы распределения нагрузки: round-robin по умолчанию, веса серверов и least_conn для разной длительности запросов.

    2. Sticky-сессии и хеширование: ip_hash и hash

      Привязка клиента к серверу: метод ip_hash, директива hash по ключу, зачем нужны липкие сессии и их подводные камни.

    3. Health-checks и отказоустойчивость апстрима

      Как Nginx исключает упавшие бэкенды: max_fails, fail_timeout, пассивные проверки, backup-серверы и proxy_next_upstream.

  6. 6 HTTPS, безопасность и оптимизация

    1. HTTPS и TLS-терминация на Nginx

      Настройка HTTPS: listen 443 ssl, сертификаты, TLS-терминация, редирект с http на https и схема прохождения шифрованного трафика.

    2. Let's Encrypt и безопасная настройка TLS

      Бесплатные сертификаты через certbot и автопродление, современные ssl_protocols и шифры, HSTS, session cache для оценки A+.

    3. Заголовки безопасности и ограничение запросов

      Защитные HTTP-заголовки, скрытие версии Nginx и rate limiting через limit_req: leaky bucket, burst и nodelay против атак.

    4. Логи, мониторинг и отладка Nginx

      access и error логи, кастомный log_format, уровни ошибок, статус-страница stub_status и парсинг логов для анализа трафика.

    5. Продакшен-конфиг: собираем всё вместе

      Полный production-ready конфиг Nginx: HTTPS, проксирование на upstream с балансировкой, статика, безопасность, лимиты и чек-лист запуска.