Nginx: введение и установка
Что такое Nginx
Nginx (произносится «энджин-икс») — веб-сервер и reverse proxy. В вебе используется в 3 ролях:
- Веб-сервер — отдаёт статику (HTML, CSS, JS, картинки) быстрее Apache.
- Reverse proxy — проксирует запросы на PHP-FPM, Node.js, другие сервисы.
- 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 установлен и работает. Дальше — разберём архитектуру.