Вход
Регистрация

Что такое NGINX и зачем он нужен

SoftPower

Что такое NGINX и зачем он нужен

Что такое NGINX и зачем он нужен

Скандал вокруг прав на веб-сервер NGINX, который разразился в конце 2019 года, вышел далеко за рамки ИТ-тусовки. Неожиданно для себя о существовании этого продукта узнали даже далекие от высоких технологий обыватели. Оказалось, (но мы-то об этом знали давно!), что NGINX – едва ли не самый массовый в мире ИТ-продукт, имеющий российские корни.

История и современность

История NGINX стартовала в начале 2000-х. Тогда Rambler столкнулся с проблемой роста – типичной для тех лет, когда число пользователей интернет-сервисов росло лавинообразно. Ее в свободное от основной работы время решил исследовать системный администратор компании Игорь Сысоев. На выполнение задачи ушло два года. Так появился NGINX (произносится как engine-x или «инженикс») – веб-сервер, который хранит данные интернет-сайта и обеспечивает доступ его посетителей к контенту.

Продукт разрабатывался факультативно и был некоммерческим. Само решение можно было бесплатно скачать в Сети, первый публичный релиз появился в 2004 году.

В 2011 году Игорь Сысоев вместе с Максимом Коноваловым и Андреем Алексеевым основали компанию NGINX, намереваясь развивать уже ставший популярным продукт и выпускать новые, коммерческие разработки. За несколько лет партнерам удалось привлечь более 100 млн долларов инвестиций. Первая коммерческая версия, NGINX Plus, появилась в 2013 году, за ней последовали и другие разработки. Интересно, что базовое решение, веб-сервер NGINX, продолжает распространяться свободно.

Открытый доступ и эффективность NGINX сделали его очень популярным. Сегодня этот веб-сервер используют около четверти всех интернет-ресурсов, в том числе такие гиганты, как «ВКонтакте», Mail.Ru, Dropbox и Netflix. Интересно, что ближайшим конкурентам (Microsoft и Apache) NGINX уступает лишь единицы процентов доли рынка.

В 2019 году компанию NGINX приобрел холдинг F5 Networks. Владельцы NGINX даже не искали покупателя: сделка родилась во время переговоров о потенциальном партнерстве. 

Сегодня NGINX продолжает работать под собственной торговой маркой, но уже как часть F5. Холдингу принадлежат права на продукты NGINX, интеллектуальную собственность компании, бренд и бизнес. Команда перешла на работу в штат F5 Networks. Возглавляет компанию ее прежний СЕО Гас Робертсон.

Также
по теме

Что умеет NGINX

Функциональность NGINX обеспечивает все базовые потребности администрирования веб-серверов. Он работает в Unix-подобных средах (имеется и поддержка Windows). Веб-сервер обеспечивает защищенную передачу данных по протоколам SSL/TLS, обслуживает статичные запросы, автоматически учитывает файлы, хранящиеся на сервере, осуществляет кэширование открытых файлов. 

К возможностям NGINX относятся также элементарная аутентификация (по паре «логин-пароль») и перенаправление с одного сервера на другой. Это дает возможность использовать NGINX не только для веб-, но и для почтовых серверов. В данном случае решение будет перенаправлять внешние HTTP-запросы в бэкенд, работающий на одном из популярных почтовых движков.

Преимущества

NGINX появился позже, чем его основной конкурент – Apache. Первоначальная цель, которую стремился достигнуть Игорь Сысоев,  – обеспечение масштабируемости при возрастающей нагрузке – определила и ключевые преимущества решения. Отличаясь простотой установки и настройки, а также небольшими размерами, NGINX создавался на базе асинхронных алгоритмов. 

Если обычный веб-сервер способен обработать только 1024 запроса к сайту, то NGINX работает с тысячами таких соединений. Для каждого из них создается отдельный процесс, которые работают асинхронно и не «отвлекают» ресурсы друг от друга.

В результате NGINX оказывается способен к невероятному масштабированию нагрузки. Правда, касается это только веб-сайтов со статическим контентом. Для того, чтобы раздавать динамический контент, придется настроить взаимодействие NGINX с внешним процессом. 

Тем не менее, NGINX выглядит предпочтительнее для обеспечения работы сайтов с высокой нагруженностью. Более того, используется он и в «паре» с Apache, позволяя решить проблемы с масштабированием нагрузки. В этом случае NGINX «раздает» статику и перенаправляет Apache обработку скриптов и сложных запросов.

Стоит иметь в виду, что NGINX, в отличие от того же Apache, не является готовым решением, способным работать «из коробки». Благодаря обширному сообществу разработчиков наш герой приобрел сотню дополнительных модулей, которые позволяют решить множество задач, но каждый из них потребует отдельной сборки и настройки связей.

Также
по теме

Цена

NGINX с момента появления своего первого общедоступного релиза распространяется по свободной BSD-лицензии. Исходный код сервера открыт, и каждый желающий может модифицировать его в соответствии со своими нуждами. Лицензионные платежи отсутствуют, и это – еще одно преимущество NGINX (впрочем, свободную лицензию имеют многие веб-сервера).

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

NGINX Plus

NGINX Plus появился после создания компании NGINX, в 2011 году. Многие называют этот продукт «платной» версией веб-сервера с расширенными возможностями. По сути, такие эксперты правы. В основе NGINX Plus лежит все та же популярная разработка, а причиной появления платной версии стала потребность множества заказчиков в поддержке. 

В отличие от базовой версии NGINX Plus дополнен инструментами, позволяющими балансировать нагрузку, осуществлять мониторинг сервера, организовывать потоковую передачу данных. Умеет коммерческая версия и контролировать работу приложений в бэкенде, а также проводить реконфигурацию сервера в режиме реального времени.

NGINX Amplify

Логическим развитием продуктового портфеля NGINX стал выпуск решений, которые позволяют решить отдельные, узкие задачи. Они адресованы тем компаниям, которым не нужна вся функциональность, заложенная в NGINX Plus, или, напротив, требуется расширение возможностей коммерческой версии веб-сервера.

NGINX Amplify позволяет отслеживать и контролировать как сам веб-сервер, так и приложения, которые он обслуживает. С помощью этого решения можно выявлять проблемы с производительностью инфраструктуры и выявлять их причины. Более того, Amplify будет выдавать оповещения в случае обнаружения проблем и рекомендовать пути их преодоления.

NGINX Controller

В качестве отдельного решения поставляется и дополнение к NGINX Plus – NGINX Controller. С его помощью можно контролировать состояние сервера вне зависимости от того, в какой роли он развернут, будь то балансировщик нагрузки, шлюз API или прокси-сервер. С помощью Controller можно не только наблюдать за работающими приложениями, но и управлять развертыванием новых при расширении инфраструктуры.

NGINX Unit

А вот NGINX Unit – куда как более серьезная, чем обычная утилита, разработка компании. Ее, по сути, ждали с момента появления первой версии NGINX, но выпущена она была только в 2017 году. NGINX Unit – сервер приложений. Он позволяет запускать веб-приложения, написанные на разных языках. Особенно востребовано решение в компаниях, где за годы развития «накопилось» много таких систем. 

Благодаря NGINX Unit у заказчиков появилась единая платформа, позволяющая обеспечить работоспособность такого «зоопарка» и управлять им в режиме реального времени.

Самое читаемое