Баннер мобильный (3) Пройти тест

Nginx

Глоссарий

27 августа 2024

Поделиться

Скопировано

Содержание

    Nginx (eNGIne X, «Энджинкс» или «Энджин-икс») — это программное обеспечение с открытым исходным кодом для создания легкого и мощного веб-сервера. Также его используют в качестве почтового или обратного прокси-сервера. Nginx решает проблему падения производительности с ростом трафика и является самым популярным веб-сервером в России и вторым в мире.

    лого nginx
    Логотип Nginx

    Nginx разработал Игорь Сысоев, системный администратор «Рамблера», в 2002 году, чтобы решить проблему с проседанием под нагрузкой. В 2004 году продукт стал доступен для широкого круга пользователей и получил одобрение. С 2011 года выпуском занимается собственная фирма Игоря, которая через 2 года представила расширенную платную версию продукта (Nginx Plus).

    Для чего нужен

    Сейчас Nginx обслуживает соединения, обрабатывает запросы, которые поступают к серверу, а также используется:

    • для обработки запросов с сайтов, где много статического неизменного контента;
    • обслуживания серверов, на которые поступает много запросов одновременно;
    • в качестве прокси, почтового сервера или для распределения нагрузки на серверную часть.
    • SSL/TLS терминация: Nginx способен выполнять терминацию SSL/TLS, обеспечивая шифрование и дешифрование данных между клиентами и серверами. Это снижает нагрузку на бэкэнд-серверы и улучшает безопасность.

    Особенности Nginx

    Высокая скорость

    Особенно заметна при работе со статическим контентом, который не нужно постоянно обновлять. Когда пользователь загружает страницу сайта, сначала веб-сервер Nginx кэширует данные у себя, а потом возвращает результат. При следующих запросах страницы ответ происходит в несколько раз быстрее.

    Гибкость

    Программное обеспечение гибко конфигурируется и настраивается под потребности инфраструктуры.

    Малое потребление памяти

    Чтобы уменьшить нагрузку на оперативную память, Nginx использует выделенный сегмент памяти — «пул» (pool). Он динамический и может расширяться при увеличении длины запроса.

    Хорошая поддержка

    У Nginx активное комьюнити и хорошая клиентская поддержка, а документация доступна и на русском языке.

    Доступность

    Программа бесплатная и распространяется по свободной лицензии. У нее открытый программный код, поэтому любой разработчик может адаптировать Nginx под себя.

    Как работает Nginx

    Когда пользователь совершает действие на странице, информация передается на сервер. Он находит файлы, передает сведения.

    Если обрабатывать запросы каждого пользователя по отдельности, серверу придется одновременно выполнять много процессов. Сайт начнет работать медленно. Nginx позволяет обойти ограничение. Его архитектура асинхронная: все запросы обрабатываются на разных этапах, что повышает скорость обработки.

    Запросы от одного пользователя разбиваются на маленькие структуры — сетевые соединения. Обработка происходит быстрее: за однотипные действия отвечает один процесс. После обработки соединения собираются в одном виртуальном контейнере, чтобы преобразоваться в единый первоначальный запрос, а затем отправляются пользователю. Благодаря такому принципу работы Nginx одно сетевое соединение может обслуживать до 1024 запросов.

    схема работы сервера nginx
    Как работает Nginx

    Для каких ОС подходит Nginx

    Nginx является мультиплатформенным веб-сервером и прокси-сервером, который подходит для различных операционных систем. Вот список некоторых из наиболее популярных ОС, на которых можно установить и запустить Nginx:

    1. Linux: Nginx является основным выбором для многих Linux-дистрибутивов. Это включает в себя такие дистрибутивы, как Ubuntu, Debian, CentOS, Red Hat Enterprise Linux (RHEL), Fedora, openSUSE и многие другие.
    2. Unix (BSD): Nginx также хорошо работает на различных Unix-подобных системах, включая FreeBSD и OpenBSD.
    3. macOS: Вы можете установить Nginx на компьютерах Mac с помощью пакетных менеджеров, таких как Homebrew.
    4. Windows: Хотя Nginx не является стандартным выбором для Windows, существует официальная поддержка Nginx для Windows, и его можно использовать на этой платформе.
    5. Docker: Nginx также может быть запущен в контейнерах Docker на различных ОС.
    6. UNIX-подобные системы в облаке: Вы можете установить Nginx на различных облачных платформах, таких как Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) и другие.
    7. Другие ОС: Nginx может быть скомпилирован и работать на многих других операционных системах, если есть подходящие версии компиляторов и библиотек.

    Что выбрать: Nginx или Apache

    Apache — главный конкурент Nginx. Существует дольше, поэтому имеет более крупное комьюнити. Работать с Apache легче за счет простой архитектуры и полноценной поддержки Windows. При работе с динамическим контентом показывает такую же производительность, как Nginx. Но статический контент Nginx обрабатывает в 2,5 раза быстрее, потребляя при этом меньше памяти.

    ПараметрNginxApache
    ТипВеб-сервер, прокси-серверВеб-сервер
    ЛицензияBSD-styleApache License 2.0
    АрхитектураСобытийная (event-driven)Процессо-ориентированная (process-based)
    ПроизводительностьВысокая, эффективное управление ресурсамиВысокая, но более ресурсозатратная
    РаспространенностьПопулярен, широко используетсяПопулярен, широко используется
    МодульностьОграниченнаяВысокая, множество модулей
    КонфигурацияПростая, читаемаяИзменчивая, сложная
    Версия PHP (модуль PHP-FPM)ДаДа
    Поддержка .htaccess файловНетДа
    МасштабируемостьХорошая, легко масштабируетсяХорошая, но может потребоваться больше усилий
    Виртуальные хостыЛегко настраиваютсяЛегко настраиваются
    SSL/TLS поддержкаДаДа
    Совместимость с WindowsОграниченная (официально только через WSL)Да, полная поддержка
    ПроксированиеПревосходноеОтличное
    Поддержка HTTP/2ДаДа
    ДокументацияХорошо документированХорошо документирован
    Сообщество и поддержкаАктивноеАктивное
    Таблица сравнения двух популярных веб-серверов

    Nginx может работать в связке с Apache. Если запрос приходит на выдачу статического материала, его обрабатывает Nginx. Если пользователю нужен динамический контент (графика, видео), подключается Apache. 

    Поделиться

    Скопировано

    0 комментариев

    Комментарии