Урок 01

Nginx: введение и установка

Что такое Nginx

Nginx (произносится «энджин-икс») — веб-сервер и reverse proxy. В вебе используется в 3 ролях:

  1. Веб-сервер — отдаёт статику (HTML, CSS, JS, картинки) быстрее Apache.
  2. Reverse proxy — проксирует запросы на PHP-FPM, Node.js, другие сервисы.
  3. Load balancer — распределяет нагрузку между несколькими серверами.

В 2026 году Nginx — стандарт для деплоя Laravel и Next.js.

Почему Nginx, а не Apache

  • Быстрее на статике (event-driven, а не thread-driven)
  • Меньше памяти — один worker обслуживает тысячи соединений
  • Reverse proxy из коробки
  • Простой конфиг

Apache ещё используется, но для новых проектов — Nginx.

Установка на Ubuntu

sudo apt update
sudo apt install nginx

Проверь:

nginx -v
# nginx version: nginx/1.24.0

Управление сервисом

sudo systemctl start nginx      # запустить
sudo systemctl stop nginx       # остановить
sudo systemctl restart nginx    # перезапустить
sudo systemctl reload nginx     # перечитать конфиг без разрыва соединений
sudo systemctl status nginx     # статус
sudo systemctl enable nginx     # автозапуск

reload vs restart:

  • reload — перечитать конфиг, активные соединения не рвутся
  • restart — полная остановка и запуск

Для Nginx всегда reload, если менял конфиг.

Проверка конфига

Перед reload всегда проверяй:

sudo nginx -t

Вывод при успехе:

nginx: configuration file /etc/nginx/nginx.conf test is successful

Если синтаксическая ошибка — не применяется конфиг, пока не исправишь. Это спасает прод.

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

После установки Nginx сразу работает на порту 80. Открой http://192.0.2.1 (IP сервера) — увидишь стандартную страницу «Welcome to nginx!».

Структура конфигов

/etc/nginx/
├── nginx.conf              — основной конфиг
├── sites-available/        — все возможные сайты
├── sites-enabled/          — включённые сайты (симлинки)
├── conf.d/                 — общие настройки
└── snippets/               — переиспользуемые куски

Логика:

  • Конфиг сайта лежит в sites-available/
  • Чтобы включить — делаешь симлинк в sites-enabled/
  • Так можно быстро выключать сайты

Firewall

Разреши Nginx в UFW:

sudo ufw allow 'Nginx Full'    # 80 + 443
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status

Что дальше

В этом курсе:

  • Настройка virtual hosts для Laravel и Next.js
  • Reverse proxy на PHP-FPM и Node.js
  • HTTPS через Let's Encrypt
  • Кэширование, gzip, rate limiting
  • Логи и диагностика

Итог

Nginx установлен и работает. Дальше — разберём архитектуру.