Nginx
Что такое Nginx?
Nginx написан, чтобы держать много соединений малой памятью. Он стоит у двери сайта. Браузер подключается к нему. Он может отдать файл с диска или передать запрос Node, PHP или другому порту. Сертификат HTTPS тоже часто крепят здесь.
Для чего нужен Nginx?
Он нужен, чтобы аккуратно открыть несколько служб за одним доменом.
- Отдавать статический сайт
- Прокси к Node или PHP
- Завершать TLS в одном месте
- Разделять несколько доменов
Что можно делать с Nginx?
Блок server описывает один домен. location говорит, в какую папку или прокси идёт путь. nginx -t проверяет конфиг. Если есть ошибка, не делай reload. Рабочий конфиг сломается.
Сложно ли освоить Nginx?
Простой статический сайт короткий. Трудность в заголовке прокси, большом файле и пути сертификата. Ту же работу, что Apache, он может сделать, но файл конфига другой. Не копируй один из примера другого.
Плюсы и ограничения
Плюс: лёгкий, силён в прокси и статике, документации много. Ограничение: сложное условие делает конфиг нечитаемым, неверный прокси может спрятать приложение. Собственный журнал приложения всё ещё нужен.
Основные понятия
Процесс worker держит соединение. root — статическая папка. proxy_pass — адрес приложения позади.
- sites-available хранит конфиг
- sites-enabled — активная ссылка
- nginx -t проверяет
- systemctl reload nginx обновляет, не убивая процесс
Короткий пример
Этот блок принимает домен на порту 80 и передаёт запрос на локальный порт 3000. Поменяй домен на своё имя.
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}Частые вопросы
- Nginx и Apache — одно и то же? Оба веб-серверы, конфиг и модель различаются.
- Nginx — язык программирования? Нет. Это сервер, который принимает запрос.
- Если есть Node, нужен ли Nginx? Не всегда. Когда есть домен, TLS и несколько служб, обычно да.