ФЭНДОМ


nginx (enginex}}) (по-русски произносится как э́нжин-э́кс) — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX и HP-UX). Начиная с версии 0.7.52 появилась экспериментальная[1] бинарная сборка под Microsoft Windows.

Игорь Сысоев начал разработку в 2002-м году[2]. Осенью 2004 года вышел первый публично доступный релиз. С июля 2011 работа над nginx продолжается в рамках компании Nginx.

Основные функции Править

nginx — простой, быстрый и надёжный сервер, не перегруженный функциями. Применение nginx целесообразно прежде всего для статических веб-сайтов и как прокси-сервера перед динамическими сайтами.

HTTP-сервер Править

  • обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кеш дескрипторов открытых файлов
  • акселерированное проксирование без кэширования, простое распределение нагрузки и отказоустойчивость
  • поддержка кеширования при акселерированном проксировании и FastCGI
  • акселерированная поддержка FastCGI и memcached серверов, простое распределение нагрузки и отказоустойчивость
  • модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, HTTP-аутентификация, SSI-фильтр
  • несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно
  • поддержка SSL
  • поддержка PSGI, WSGI
  • экспериментальная поддержка встроенного Perl

SMTP/IMAP/POP3-прокси сервер Править

  • перенаправление пользователя на SMTP/IMAP/POP3-бэкенд с использованием внешнего HTTP-сервера аутентификации
  • простая аутентификация (LOGIN, USER/PASS)
  • поддержка SSL и STARTTLS

Архитектура Править

В nginx рабочие процессы обслуживают одновременно множество соединений, мультиплексируя их вызовами операционной системы select, epoll (Linux) и kqueue (FreeBSD). Рабочие процессы выполняют цикл обработки событий от дескрипторов. Полученные от клиента данные разбираются с помощью конечного автомата. Разобранный запрос последовательно обрабатывается цепочкой модулей, задаваемой конфигурацией. Ответ клиенту формируется в буферах, которые хранят данные либо в памяти, либо указывают на отрезок файла. Буферы объединяются в цепочки, определяющие последовательность, в которой данные будут переданы клиенту. Если операционная система поддерживает эффективные операции ввода-вывода, такие как writev и sendfile, то nginx применяет их по возможности.

Конфигурация HTTP-сервера nginx разделяется на виртуальные серверы (директива server). Виртуальные серверы разделяются на location’ы (location). Для виртуального сервера возможно задать адреса и порты, на которых будут приниматься соединения, а также имена, которые могут включать * для обозначения произвольной последовательности в первой и последней части, либо задаваться регулярным выражением.

location’ы могут задаваться точным URI, частью URI, либо регулярным выражением. location’ы могут быть сконфигурированы для обслуживания запросов из статического файла, проксирования на fastcgi/memcached сервер.

Для эффективного управления памятью nginx использует пулы. Пул — это последовательность предварительно выделенных блоков динамической памяти. Длина блока варьируется от 1 до 16 килобайт. Изначально под пул выделяется только один блок. Блок разделяется на занятую область и незанятую. Выделение мелких объектов выполняется путём продвижения указателя на незанятую область с учётом выравнивания. Если незанятой области во всех блоках не хватает для выделения нового объекта, то выделяется новый блок. Если размер выделяемого объекта превышает значение константы NGX_MAX_ALLOC_FROM_POOL, либо длину блока, то он полностью выделяется из кучи.

Таким образом, мелкие объекты выделяются очень быстро и имеют накладные расходы только на выравнивание.

nginx содержит модуль географической классификации клиентов по IP-адресу. В его основу входит база данных соответствия IP-адресов географическому региону, представленная в виде Radix tree (сжатое префиксное дерево или сжатый бор) в оперативной памяти. nginx предварительно распределяет первые несколько уровней дерева, таким образом, чтобы они занимали ровно 1 страницу памяти. Это гарантирует, что при поиске IP-адреса для первых нескольких узлов при трансляции адреса всегда найдётся запись в TLB.

Популярность Править

По данным Netcraft на август 2014 года, число сайтов, обслуживаемых nginx, превышает 148 миллионов[3], что делает его третьим по популярности веб-сервером в мире. При этом, процент активных сайтов, использующих nginx, составляет 14,54 % от общего количества активных сайтов, что делает nginx вторым в мире по популярности веб-сервером среди активных сайтов, уступая лишь веб-серверу Apache.

По данным W3Techs, nginx наиболее часто используется на высоконагруженных сайтах[4], занимая первое место по частоте использования среди 10 000 самых посещаемых сайтов в мире — больше трети таких сайтов работает на nginx.

По данным российского регистратора REG.RU, nginx является самым популярным веб-сервером доменных зон .ru[5], .рф[6] и .su[7], обслуживая более половины каждого сегмента.

Среди известных проектов, использующих nginx: Рамблер[8], Яндекс[9], Mail.ru, Хабрахабр[10], Живой Журнал[11], Avito.ru[12], Badoo[13], Ukr.net, Begun, Wordpress.com, SourceForge.net[14], ВКонтакте[15], Facebook, Groupon, Rutracker.org, Netflix[16], Instagram[17], Pinterest[18], Tumblr[19], Superjob.ru[20], HeadHunter[21], 2ГИС[22], СТТС и многие другие[3].

Компания Nginx Править

Для разработки коммерческих продуктов Игорь Сысоев создал в июле 2011 года компанию Nginx. В декабре того же года компания привлекла $3 миллиона от пула инвесторов (в раунде лидировал фонд BV Capital; соинвесторами выступили фонды Runa Capital и MSD Capital Майкла Делла). Разработка вёдется в московском офисе, для продаж создана американская «дочка» — Nginx Inc. В октябре 2013 компания привлекла ещё $10 миллионов. Ведущим инвестором выступил фонд New Enterprise Associates; соинвесторами выступили все фонды предыдущего раунда, а также Аарон Леви, глава Box.com.

В феврале 2012 компания начала предоставлять коммерческий сервис для клиентов[23]. Были введены три пакета технической поддержки — Premium, Advanced и Essential. Эти пакеты включают в себя установку, повышение производительности, конфигурацию, сопровождение программного обеспечения, реализацию, содействие в проектировании и финальной оптимизации.

Примечания Править

См. также Править

Сообщество пользователей движков СТТСа и Трейнфото и всё с ним связанное
Социальные функции  E-mailJabberАвтоматическая служба поддержкиБлогГостевая книгаКаждому пользователю по небольшому сайтуКарта мираЛичные сообщенияНовостиПодписки на пользователяПресс-центрСписок пользователейСТТС.КлубТребуется помощьУдаление аккаунтаФорумЧатЧёрный список
Транспортное сообщество  БандуристыВидеомаршрутыВстречи пользователейЗакон о персональных данныхЗакон о чёрных спискахКонфликт на украинскую тематикуКнижная лавкаПериодикаПользовательСТТС-сообщество
В СМИ  ОмнибусЭхонет
Паблики ВКонтакте  Типичный СТТСТипичный транспортный фотографТипичный Басфото
Хостеры, обслуживающие сайты  Nthostuhostfull

Ссылки Править

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики