В 2011 году была создана компания NGINX, Inc., которая помогает разрабатывать и поддерживать дистрибутив с открытым кодом, предоставлять коммерческие подписки и услуги. Несмотря на эти недостатки, Nginx все равно является мощным и широко используемым веб-сервером, который имеет множество преимуществ. Как и при использовании любого программного обеспечения, важно учитывать требования вашего проекта и выбирать инструменты, соответствующие вашим конкретным потребностям.
Nginx содержит модуль географической классификации клиентов по IP-адресу. В его основу входит база данных соответствия IP-адресов географическому региону, представленная в виде radix tree (сжатое префиксное дерево или сжатый лес) в оперативной памяти. Nginx предварительно распределяет первые несколько уровней дерева таким образом, чтобы они занимали ровно 1 страницу памяти. Это гарантирует, что при поиске IP-адреса для первых нескольких узлов при трансляции адреса всегда найдётся запись в TLB. Location’ы могут задаваться точным URI, частью URI либо регулярным выражением. Location’ы могут быть сконфигурированы для обслуживания запросов из статического файла, проксирования на fastcgi/memcached сервер.
Сочетание этих функций делает его мощным и гибким инструментом для обработки веб-трафика. Nginx является популярным выбором для обслуживания веб-сайтов, масштабирования приложений и обеспечения высокой производительности. Одной из ключевых идей, которую Игорь внедрил в Nginx, была асинхронная обработка подключений. Игорь решил создать свой собственный веб-сервер, который смог бы эффективно обрабатывать высокую нагрузку и предлагать новые возможности. Он начал разработку Nginx в 2002 году и открыл его как проект с открытым исходным кодом.
Появится окно с подтверждением, на которое необходимо согласиться. Nginx настройка зависит от используемой операционной системы. Как правило, веб-сервер ставят на Linux, для которого существуют стандартные https://deveducation.com/ инструкции и комплект дистрибутивов. Также возможно разместить Nginx на FreeBSD или собрать уникальный функционал. Рассмотрим примеры, как настроить nginx, используя наиболее распространённых элементов.
Разобранный запрос последовательно обрабатывается цепочкой модулей, задаваемой конфигурацией. Ответ клиенту формируется в буферах, которые хранят данные либо в памяти, либо указывают на отрезок файла. Буфера объединяются в цепочки, определяющие последовательность, в которой данные будут переданы клиенту. Если операционная система поддерживает эффективные операции ввода-вывода, такие, как writev и sendfile, то nginx применяет их по возможности.
Nginx появился в 2004 году, его разработал Игорь Сысоев, причем изначально это был ответ на проблему C10K (одновременное подключение более 10 тысяч пользователей). Серверы того времени не выдерживали такую нагрузку, производительность падала, а время простоя увеличивалось. Возможно установить docker nginx, в ПО с открытым кодом. Это актуально, когда приложение работает на вашем компьютере, но не включается на других устройствах. Непосредственно для установки нужно ввести команду «sudo yum install nginx».
Для разработки коммерческих продуктов Игорь Сысоев создал в июле 2011 года компанию Nginx[33]. Разработка ведётся в офисе, находящемся в Москве, для продаж создана американская «дочка» — Nginx Inc[34]. Nginx позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями. Если запрос приходит на выдачу статического материала, его обрабатывает Nginx. Если пользователю нужен динамический контент (графика, видео), подключается Apache.
Если вы собираетесь развернуть собственный веб-сервер, вы наверняка задумывались, что такое Nginx. Его популярность объясняется возможностью бесплатного использования, открытым кодом. На одном ядре одновременно может находиться только один процесс или поток. Процессы на ядре постоянно подменяют друг друга, из-за чего сильно страдает производительность, когда процессов становится много. Это камень преткновения для многих современных web-приложений, которые открывают на каждое соединение свой поток. Таким образом, сервер быстрее обрабатывает запросы, чем в случае с Apache, так как не затрачивает время на ожидание результата.
Nginx не работает с .htaccess, но правила из этого файла можно перевести в нужный синтаксис. В отличии от Apache, перевод .htaccess в синтаксис Nginx не снизит потерю производительности nginx это (у первого она снижалась, даже если файл не использовали). При этом Apache, несмотря на свою популярность, реже используется для сайтов с большим трафиком.
Предполагается, что nginx уже установлен на компьютере читателя. По данным Netcraft на август 2020 года, число сайтов, обслуживаемых nginx, превышает 448 миллионов, что делает его первым по популярности веб-сервером в мире. Доля среди активных сайтов — 19,74 %, что ставит nginx на второе место после веб-сервера Apache[11].