Nginx

Nginx — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах

Подробнее...

Описание

nginx  — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым.

  • Исходные тексты и документация распространяются под BSD-подобной лицензией из 2 пунктов.
  • Коммерческая поддержка осуществляется компанией Nginx, Inc.

 

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

Основной функционал HTTP-сервера nginx

  • Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
  • Акселерированное обратное проксирование с кэшированием, распределение нагрузки и отказоустойчивость;
  • Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием, распределение нагрузки и отказоустойчивость;
  • Модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI/uwsgi/SCGI, выполняются параллельно;
  • Поддержка SSL и расширения TLS SNI;
  • Поддержка HTTP/2 с приоритизацией на основе весов и зависимостей.

 

Возможности HTTP-сервера nginx

  • Виртуальные серверы, определяемые по IP-адресу и имени;
  • Поддержка keep-alive и pipelined соединений;
  • Настройка форматов логов, буферизованная запись в лог, быстрая ротация логов, запись в syslog;
  • Специальные страницы для ошибок 3xx-5xx;
  • rewrite-модуль: изменение URI с помощью регулярных выражений;
  • Выполнение разных функций в зависимости от адреса клиента;
  • Ограничение доступа в зависимости от адреса клиента, по паролю (HTTP Basic аутентификация) и по результату подзапроса;
  • Проверка HTTP referer;
  • Методы PUT, DELETE, MKCOL, COPY и MOVE;
  • FLV и MP4 стриминг;
  • Ограничение скорости отдачи ответов;
  • Ограничение числа одновременных соединений и запросов с одного адреса;
  • Геолокация по IP-адресу;
  • A/B-тестирование;
  • Зеркалирование запросов;
  • Встроенный Perl;
  • сценарный язык njs.

 

Функционал почтового прокси-сервера nginx

  • Перенаправление пользователя на IMAP- или POP3-сервер с использованием внешнего HTTP-сервера аутентификации;
  • Проверка пользователя с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
  • Методы аутентификации:POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
  • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
  • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
  • Поддержка SSL;
  • Поддержка STARTTLS и STLS.

Функционал TCP/UDP прокси-сервера

  • Проксирование TCP и UDP;
  • Поддержка SSL и расширения TLS SNI для TCP;
  • Распределение нагрузки и отказоустойчивость;
  • Ограничение доступа в зависимости от адреса клиента;
  • Выполнение разных функций в зависимости от адреса клиента;
  • Ограничение числа одновременных соединений с одного адреса;
  • Настройка форматов логов, буферизованная запись в лог, быстрая ротация логов, запись в syslog;
  • Геолокация по IP-адресу;
  • A/B-тестирование;
  • сценарный язык njs.

 

Архитектура и масштабируемость nginx

  • Один главный и несколько рабочих процессов, рабочие процессы работают под непривилегированным пользователем;
  • Гибкость конфигурации;
  • Изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
  • Поддержка kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select и poll;
  • Использование возможностей, предоставляемых kqueue, таких как EV_CLEAR, EV_DISABLE (для временного выключения события), NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
  • Использование возможностей, предоставляемых epoll, таких как EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) и EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);
  • Поддержка sendfile (FreeBSD 3.1+, Linux 2.2+, macOS 10.5+), sendfile64 (Linux 2.4.21+) и sendfilev (Solaris 8 7/01+);
  • Поддержка файлового AIO (FreeBSD 4.3+, Linux 2.6.22+);
  • Поддержка DIRECTIO (FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, macOS);
  • Поддержка accept-фильтров (FreeBSD 4.1+, NetBSD 5.0+) и TCP_DEFER_ACCEPT (Linux 2.4+);
  • На 10 000 неактивных HTTP keep-alive соединений расходуется около 2.5M памяти;
  • Минимум операций копирования данных.
     

Протестированные ОС и платформы nginx

  • FreeBSD 3 — 12 / i386; FreeBSD 5 — 12 / amd64; FreeBSD 11 / ppc; FreeBSD 12 / ppc64;
  • Linux 2.2 — 4 / i386; Linux 2.6 — 5 / amd64; Linux 3 — 4 / armv6l, armv7l, aarch64, ppc64le;
  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v; Solaris 11 / x86;
  • AIX 7.1 / powerpc;
  • HP-UX 11.31 / ia64;
  • macOS / ppc, i386, x86_64;
  • Windows XP, Windows Server 2003, Windows 7, Windows 10.

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “Nginx”

Ваш адрес email не будет опубликован.

Блог, обзоры, новости

Posted inДайджест

Настройка Laravel, Nginx и MySQL с Docker Compose

В последние несколько лет Docker стали часто использовать для развертывания приложений, поскольку он упрощает запуск и развертывание приложений в виртуальных контейнерах. При использовании набора приложений LEMP, например в системе с PHP, Nginx, MySQL и Laravel, Docker может значительно ускорить процедуру настройки. Docker Compose упрощает процесс разработки, позволяя разработчикам определять свою инфраструктуру в одном файле, включая службы приложений, сети и томы. Docker Compose предлагает эффективную […]

Posted inДайджест

Как мы в Dropbox перешли с Nginx на Envoy

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

Posted inДайджест

В чем компания Александра Мамута обвиняет основателей Nginx

Осведомителем компании Lynwood Александра Мамута, подавшей иск к основателям, покупателю и первым инвесторам российского веб-сервера Nginx, был Александр Коротков, работавший в Rambler в 2007–2009 годах. Это следует из исковых материалов, которые имеются в распоряжении The Bell.  Осведомителем компании Lynwood Александра Мамута был Александр Коротков. Александр Коротков работал в Rambler в 2007–2009 годах. Lynwood подала иск на […]

Посмотреть блог по теме: Nginx