В чем разница между базовыми, полными, дополнительными и легкими пакетами для nginx?

54

nginx на Ubuntu - это виртуальный пакет, предоставляемый одним из пяти пакетов из официальных репозиториев (на по крайней мере, по состоянию на 14.04, по умолчанию считается nginx-core ):

$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
 nginx-core
 nginx-extras
 nginx-full
 nginx-light
 nginx-naxsi

В чем разница между этими пакетами и какие рекомендуемые варианты использования для них?

Эта несколько старая страница Debian Wiki имеет сравнение функций между extras , full , light и naxsi , но не упоминается core . Сколько из них изменилось в 14.04?

вторичная Насколько я понимаю, nginx не поддерживает время выполнения таких модулей, как Apache, поэтому установка nginx-extras влияет на производительность?

    
задан muru 27.11.2014 в 08:40
источник

2 ответа

77

В то время как ответ Стивена затрагивает ключевые моменты и очень основное резюме того, что каждый вкус, я дам вам гораздо более подробное описание различий, поскольку я работаю над упаковкой совсем немного, а самые разные наборы модулей в каждом абсолютно критично для хорошего ответа. Основные описания не слишком оправдывают сравнение. (Кроме того, престиж Стивен цитирует мой старый блог (и даже ссылался на меня как на «сопровождающего». Я хотел был перенести сообщение nginx-to-coming-to-main в свой новый блог, но у меня не было возможности .)

Также обратите внимание, что последние пакеты для веб-сервера NGINX доступны в PPIN NGINX, который поддерживается мной, почти полностью отключен от Debian. ( Стабильный PPA (1.6.2 на этом посту); Mainline PPA (1.7.7 на этом посту, с 1.7.8, намеченным на землю 4 декабря 2014 года))

Различные ароматы nginx :

Различные вкусы - это одна и та же версия nginx , однако вкусы были решены сопровождающими пакетами Debian, чтобы предоставить различные наборы функций (для nginx-extras ), а также минимальный и самый большой -эффективный «полный» набор функций, которые веб-серверы, как правило, использовали на веб-сайтах. Точная причина, по которой функция была выбрана над другой, мне неизвестна, однако в дополнительном обсуждении с одним из поддерживающих Debian в IRC было сделано заявление, подтверждающее мою первоначальную оценку, что каждый вариант был предназначен для того, чтобы быть другим набором функций для другой вариант использования - light для легкого набора функций, который удовлетворяет минимальному хостингу сайта, full для более полного набора функций без включения каких-либо более тяжелых дополнительных функций и extras для почти всего, что есть в пакете, который может быть включен в Ubuntu. naxsi , до 15.04, был вариантом Naxsi, в частности, с минимальным количеством модулей в нем, поскольку naxsi может быть достаточно ресурсоемким.

Предположительно, согласно одному из поддерживающих Debian NGINX, которые регулярно координируются с Upstream NGINX в приватном разговоре, из которого я не могу писать журналы, NGINX 2.x будет иметь поддержку загружаемого модуля. В этом случае light , full и extras станут метапакетами, которые обращаются к отдельным пакетам, содержащим каждый модуль. Однако дата, когда это становится так, неизвестна, и какие модули на самом деле не способны это сделать.

Как и в настоящее время, виртуальный пакет nginx предназначен для установки одной из доступных версий. По умолчанию, поскольку nginx-core находится в основном, и нам бы очень понравилось, если бы люди использовали его больше, nginx-core - это первый элемент, который видел и пытался установить в виртуальном пакете. (Тем не менее, пакет nginx может полагаться на любой из вкусов nginx и в основном там, чтобы сделать установку немного проще для тех, кому не нужны какие-либо особые предпочтения)

Подробная разбивка с конкретными модулями, доступными в каждом варианте (на основе Vivid debian/control file и Trusty debian/control file (поскольку пакеты Naxsi были удалены в Vivid), можно найти ниже. Обратите внимание, что это не отражает самые последние изменения в Ubuntu, и вы должны обратиться к этим описаниям пакетов, чтобы убедиться, что у вас есть обновленная, точная информация :

  • nginx-core - единственный вкус в главном разделе репозиториев Ubuntu, начиная с 14.04, и существует only в репозиториях Ubuntu (и не находится в PPA или Debian, и он не будет включен в Debian когда-либо). Он фактически идентичен вкусу nginx-full , но не содержит сторонних модулей. Обоснованием использования nginx-full в качестве основы для этого варианта было то, что мы хотели предоставить относительно полноценный набор базовых модулей во встроенных двоичных файлах, одновременно сохраняя модули сторонних разработчиков. Таким образом, он не содержит каких-либо сторонних модулей, так как команда безопасности провела обзор кода и обнаружила, что сторонние модули имеют сильно различающиеся стили кодирования, которые не так хорошо поддерживаются, как включенный nginx-tarball модулей (это обсуждается более подробно в ошибке основного запроса включения / отчета , который содержит точки обсуждения и дальнейшие обсуждения в отношении того, что может быть включено в Ubuntu Main для nginx ).Полный список модулей, включенных здесь, находится в описании пакета, которое я тут запомнил:

      

    СТАНДАРТНЫЕ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, Browser,   Charset, пустой GIF, FastCGI, Geo, Gzip, заголовки, индекс, лимитные запросы,   Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI,   Split Clients, SSI, Upstream, User ID, UWSGI.

         

    ДОПОЛНИТЕЛЬНЫЕ МОДУЛИ HTTP: добавление, отладка, GeoIP, предварительное сжатие Gzip, HTTP Sub,   Фильтр изображения, IPv6, Real IP, Spdy, SSL, состояние заглушки, замена, WebDAV,   XSLT.

         

    ПОЧТОВЫЕ МОДУЛИ: Mail Core, IMAP, POP3, SMTP, SSL.

  • nginx-light - самый легкий вкус nginx . Он находится в репозитории Universe, и вы должны иметь возможность использовать его. Он не позволяет использовать большое количество модулей в -core или -full . Он также содержит сторонние модули. Доступные в нем модули следующие:

      

    СТАНДАРТНЫЕ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, Charset,   Пустой GIF, FastCGI, Gzip, заголовки, индекс, журнал, карта, прокси, переписывание, восходящий поток.

         

    ДОПОЛНИТЕЛЬНЫЕ МОДУЛИ HTTP: запрос, отладка, предварительный сжатие Gzip, IPv6, реальный   Ip, SSL, состояние заглушки.

         

    МОДУЛИ ТРЕТЬИХ ЛИЦ: Эхо.

  • nginx-full является одним из наиболее функциональных вкусов пакета nginx . Как и его сопоставитель light , он находится в репозитории Universe. Он позволяет большинству базовых модулей, которые являются стандартными и необязательными в исходном tarball из-nginx, а также несколько сторонних модулей, предназначенных для расширения возможностей веб-сервера nginx. Это следующие модули:

      

    СТАНДАРТНЫЕ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, Browser,   Charset, пустой GIF, FastCGI, Geo, Gzip, заголовки, индекс, лимитные запросы,   Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI,   Split Clients, SSI, Upstream, User ID, UWSGI.

         

    ДОПОЛНИТЕЛЬНЫЕ МОДУЛИ HTTP: добавление, запрос аутентификации, отладка, GeoIP, Gzip   Предварительное сжатие, HTTP Sub, Фильтр изображений, IPv6, Real IP, Spdy, SSL, Состояние заглушки,   Замена, WebDAV, XSLT.

         

    ПОЧТОВЫЕ МОДУЛИ: Mail Core, IMAP, POP3, SMTP, SSL.

         

    МОДУЛИ ТРЕТЬИХ ПАРТИЙ: Auth PAM, DAV Ext, Echo, HTTP Substitution Filter,   Upstream Fair Queue.

  • nginx-extras - наиболее функциональный аромат пакета nginx . И, как и его full и light brothers, он также находится в репозитории Universe. Он включает все модули в nginx-full , а также включает в себя дополнительные модули (такие как модуль Perl) и многие другие сторонние модули, предназначенные еще больше расширить возможности веб-сервера nginx. Полный список модулей приведен ниже:

      

    СТАНДАРТНЫЕ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, Browser,   Charset, пустой GIF, FastCGI, Geo, Gzip, заголовки, индекс, лимитные запросы,   Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI,   Split Clients, SSI, Upstream, User ID, UWSGI.

         

    ДОПОЛНИТЕЛЬНЫЕ МОДУЛИ HTTP: добавление, аут-запрос, отладка, встроенный Perl, FLV,   GeoIP, предварительное сжатие Gzip, фильтр изображений, IPv6, MP4, случайный указатель, реальный IP,   Secure Link, Spdy, SSL, состояние заглушки, замена, WebDAV, XSLT.

         

    ПОЧТОВЫЕ МОДУЛИ: Mail Core, IMAP, POP3, SMTP, SSL.

         

    МОДУЛИ ТРЕТЬИХ ПАРТИЙ: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua,   Fancy Index, HttpHeadersMore, HTTP Substitution Filter, http push,   Nginx Development Kit, Upload Progress, Upstream Fair Queue.

  • nginx-naxsi - это вариант nginx, который имеет доступный брандмауэр веб-приложений Naxsi. Он также находится во Вселенной, однако этот аромат больше не поддерживается поддерживающими Debian и полностью удаляется из Ubuntu с выпуском 15.04. В дополнение к модулю Naxsi WAF он также включает в себя гораздо более легкий набор модулей, чем nginx-full . Полный список модулей приведен ниже:

      

    СТАНДАРТНЫЕ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, Browser,   Charset, Core, Empty GIF, FastCGI, Geo, Gzip, Headers, Index,   Limit Requests, Limit Zone, Log, Map, Memcached, Proxy, Referer,   Rewrite, Split Clients, SSI, Upstream, User ID.

         

    ДОПОЛНИТЕЛЬНЫЕ МОДУЛИ HTTP: отладка, IPv6, реальный IP, SSL, состояние заглушки.

         

    МОДУЛИ ТРЕТЬИХ ПАРТИЙ: Наксси, Очистка кэша, Экспедиционная ярмарка.

Использование ресурсов среди ароматов

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

Однако, в отличие от Apache, который может быть чем-то вроде шлюзовой памяти с включенным количеством модулей, nginx по-прежнему не потребляет столько памяти по сравнению с Apache, когда модули включены. (Исключением из этого утверждения является naxsi .Этот вкус всегда потребляет намного больше ресурсов, так как это брандмауэр веб-приложений, а также веб-сервер.)

Я добавлю критерии для этого ответа, если найду их, но опять же, я не знаю никаких существующих тестов для разных вкусов друг против друга. И хотя на сайтах, которые я запускаю, нет интенсивного трафика, я не заметил никакого реального снижения производительности между nginx-extras , nginx-full или nginx-light на сайте, управляемом PHP.

    
ответ дан Thomas Ward 04.12.2014 в 01:27
источник
11

Вот очень высокоуровневая оценка, основанная главным образом на описаниях в пакетах , (Я собираюсь не доставлять примеры использования для каждого из них, но я решил это сделать, чтобы удовлетворить мое любопытство, чтобы я мог внести свой вклад.)

От наименьшего до самого большого:

nginx-light: «базовая версия»

Минимальный набор модулей для базовой функциональности.

nginx-naxsi: "версия с naxsi"

Минимальный набор, а также упрощенная конфигурация «Nginx Anti Xss & Sql Injection» и необходимые плагины.

nginx-core: "core version"

Стандартное развертывание nginx, за исключением сторонних модулей.

Это первый Canonical-поддерживаемый пакет nginx. Он находится в основном хранилище Ubuntu вместо общедоступного репозитория «Вселенная». См. Объявление «nginx-core теперь находится в Ubuntu Trusty 14.04 Main!» на архиве неофициального (более старого и ныне несуществующего) блога сопровождающего или на копия старого сообщения в неофициальном блоге сопровождающего :

  

ни один из уже установленных ароматов nginx не включен в Ubuntu Main (nginx-light, nginx-full, nginx-extras и nginx-naxsi). Команда безопасности Ubuntu заявила, что сторонние модули сильно отличаются друг от друга в кодировании и поэтому не могут поддерживаться.

     

С этой целью мы создали пакет nginx-core, который был включен в основной репозиторий. Этот пакет содержит только модули, которые поставляются с запасом nginx tarball. Мы не включаем сторонние модули с этим пакетом, только модули, которые поступают из NGINX вверх по течению.

nginx-full: "стандартная версия"

Стандартное развертывание nginx, включая часто используемые сторонние модули.

nginx-extras: «расширенная версия»

Стандартное развертывание nginx плюс несколько редко используемых и довольно больших модулей.

    
ответ дан Steven Kath 04.12.2014 в 00:25