Nginx
NGINX (англ. engine x) - это
HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер, который работает на Unix-подобных операционных системах. Сборка и работа тестировалась на
Linux, Mac OS X, Solaris, FreeBSD, OpenBSD, AIX, а также HP-UX. Бинарная сборка для
Microsoft Windows появилась, начиная с версии nginx 0.7.52. Российский программист Игорь Сысоев начал разработку сервера NGINX в 2002 году. Написан веб-сервер на языке программирования "C". Первый публично доступный релиз появился 4 октября 2004 года. В 2011 году Игорь Сысоев основал компанию Nginx, Inc, в которой командой разработчиков развивается и продвигается созданный им продукт. В этой компании Игорь Сысоев занимает должность главного технического директора. По состоянию на 2013 год, доработка и поддержка веб-сервера NGINX продолжается.
Логотип Nginx
Основные функции и достоинства
NGINX - это простой, надежный и быстрый сервер, который не перегружен функциями. Применение веб-сервера NGINX рационально, преимущественно, для статических веб-сайтов, а также в качестве прокси-сервера перед динамическими веб-сайтами.
Достоинствами NGINX являются:
Эффективное обслуживание веб-трафика в условиях высокой конкурентности, т.е. большого количества одновременных TCP-соединений и HTTP-запросов;
Оперативное обслуживание многочисленного количество запросов на установление новых соединений и возможность справляться с неоднородностью трафика, другими словами, обрабатывать большие и маленькие веб-объекты, а также быстрые и медленные клиенты;
Максимально эффективная работа с многопроцессорными системами;
Функции масштабируемости на мультипроцессорных компьютерах;
Кроссплатформенность, т.е. работа на большинстве существующих аппаратных платформах и операционных системах;
Минимальное потребление ресурсов центрального процессора (CPU), а также памяти и системы ввод/вывода (I/O) на компьютерах;
Отличный баланс между простотой и гибкостью применяемой конфигурации.
Управляя более 15% всех интернет-доменов, NGINX стал стандартным инструментом для создания быстрых и масштабируемых веб-сайтов.
NGINX полностью поддерживает протоколы HTTP/1.1, SPDY/2, WebSocket, FastCGI, uwsgi и SCGI, и поэтому позволяет подключать пользователей к таким популярным приложениям, как Joomla, WordPress, Magento, Drupal и других, размещенных на одном сервере или в сети для повышения производительности и большой масштабируемости.
Благодаря своей компактной и предсказуемой памяти и используемого CPU, NGINX чрезвычайно популярное веб-программное обеспечение для использования во всех типах облачных сред, обслуживающий уже более 45% веб-сайтов, размещенных на Amazon AWS.
NGINX обеспечивает простую интеграцию с применением таких рамок, как Rails, Node.js, JBoss, Django или Zend. Заменяя или дополняя конфигурацию устаревших приложений поставляемых вместе с сервером, NGINX позволяет масштабировать и создавать веб-сайты без покупки лишних аппаратных средств.
Основные функции HTTP-сервера:
Акселерированное обратное проксирование с применением кэширования, простейшее распределение нагрузки и устойчивость к отказам;
Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием;
Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, а также кэш дескрипторов открытых файлов;
Модульность, фильтры, включая сжатие (gzip), докачка (byte-ranges), chunked ответы, SSI-фильтр, XSLT-фильтр, конвертация изображений; несколько подзапросов на одной странице, которые могут обрабатываться в SSI-фильтре через прокси или FastCGI и выполняться параллельно;
Поддержка SSL и расширения TLS SNI.
Другие возможности HTTP-сервера:
Большая гибкость конфигурации;
Виртуальные серверы, определяемые по IP-адресу и имени;
Обновление и изменение настроек исполняемого файла без перерыва в обслуживании клиентов;
Поддержка pipelined и keep-alive соединений;
Ограничение количества одновременных соединений и запросов с одного адреса;
Выполнение различных функций в зависимости от адреса клиента;
Ограничение доступа в зависимости от адреса клиента и HTTP Basic авторизации;
Проверка HTTP referer;
Быстрая ротация логов, настройка форматов логов, а также буферизованная запись в лог;
Специальные страницы для ошибок 3xx-5xx;
Модуль rewrite: изменение URI с помощью регулярных выражений;
Методы PUT, DELETE, MKCOL, COPY и MOVE;
FLV и MP4 стриминг;
Встроенный Perl;
Ограничение скорости выдачи ответов;
Функции почтового прокси-сервера:
Перенаправление пользователя на POP3- или IMAP-сервер при помощи внешнего HTTP-сервера аутентификации;
Проверка пользователя с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
Популярность
По данным Netcraft на май 2013 года, число сайтов, которые обслуживает NGINX, более 70 миллионов, поэтому он занимает третье место в мире по популярности среди веб-серверов. В то же время, NGINX обслуживает 13,54% от общего количества высоконагруженных сайтов, которые используют данный веб-сервер. Этот факт делает NGINX вторым в мире популярным веб-сервером, уступая лишь веб-серверу Apache.
В соответствии с данными 1stat.RU, NGINX является самым популярным веб-сервером доменной зоны .ru и обслуживает свыше половины всех сайтов этой зоны. Уже длительное время он используется серверами многих известных русскоязычных сайтов, таких как:
Яндекс,
Рамблер,
Mail.Ru,
ВКонтакте, Ukr.net, Rutracker.org, Diary.ru, Facebook, Groupon, Positronica.ru, Begun.ru и многие другие.
NGINX является ключевым компонентом программного обеспечения таких современных веб-сайтов, как: WordPress.com, SourceForge.net, Netflix, Amazon, GitHub, Pinterest, CloudFlare, Airbnb, Foursquare, Zynga, Eventbrite, NASA/JPL, Zappos, FastMail.FM, SoundCloud, Media Temple, RightScale, Heroku, Engine Yard, ZenDesk и многих других компаний.
Из-за растущей популярности руководство проекта NGINX приняло решение начать предложение коммерческого сервиса для своих клиентов. Для этого внедрили три пакета технической поддержки - это Premium, Advanced и Essential. Эти пакеты включают в себя инсталляцию, конфигурацию, увеличение производительности, реализацию, сопровождение программного обеспечения, помощь в проектировании и финальной
оптимизации.