Программирование

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 и несколько служб, обычно да.