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
влиять на производительность?
Ответы:
Хотя в ответе Стивена затрагиваются ключевые моменты и очень простое краткое изложение того, что представляет собой каждая разновидность, я дам вам гораздо более подробное описание различий, поскольку я немного работаю над упаковкой и очень разными наборами модулей в каждый абсолютно важен для хорошего ответа. Базовые описания не дают должного сравнения. (Кроме того, спасибо Стивену, который цитирует мой старый блог (и даже называет меня «сопровождающим»). Я хотел перенести пост nginx-is-come-to-main на мой новый блог, но у меня не было возможности .)
Также обратите внимание, что последние пакеты для веб-сервера NGINX доступны в PPA NGINX, поддерживаемых мной, которые основаны почти полностью на Debian. ( Стабильный PPA (1.6.2 на эту должность); Основной 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
и в main, и мы хотели бы, чтобы люди использовали его чаще,nginx-core
это первый элемент, который видели и пытались установить в виртуальном пакете. (Тем не менее,nginx
пакет может опираться на любой из ароматовnginx
, и в основном там, чтобы сделать установку немного проще для тех, кому не нужны какие-либо конкретные вкусовые предпочтения)Детальная разбивка с конкретными модулями , доступными в каждом варианте (основана от Vivid
debian/control
файла и Trustydebian/control
файл (как пакеты Naxsi были удалены в Vivid)) доступно ниже. Обратите внимание, что это не отражает самые последние изменения в Ubuntu, и вам следует обратиться к этим описаниям пакетов, чтобы убедиться, что вы обновили точную информацию :nginx-core
является единственным вариантом в разделе Main репозиториев Ubuntu, начиная с 14.04, и существует только в репозиториях Ubuntu (и не входит в PPA или Debian, и никогда не будет включен в Debian). Он фактически идентиченnginx-full
вкусу, но не содержит сторонних модулей. Обоснование использованияnginx-full
в качестве основы для этого варианта было то, что мы хотели предоставить относительно полный набор основных модулей во встроенных двоичных файлах, в то же время не допуская сторонних модулей. Как таковой, он не содержит никаких сторонних модулей, так как команда безопасности провела обзор кода и обнаружила, что сторонние модули имеют широко варьирующиеся стили кодирования, которые не так хорошо поддерживаются, как nginx-tarball-включенный модули (это обсуждается более подробно в основной ошибке запроса включения / отчета , которая содержит пункты для обсуждения и дальнейшие обзорные обсуждения относительно того, что может быть включено в Ubuntu Mainnginx
). Полный список включенных модулей приведен в описании пакета, которое я здесь выбрал:nginx-light
это самый легкий аромат изnginx
доступных. Он находится в репозитории Universe, и вы должны иметь возможность его использовать. Это не позволяет большое количество модулей, доступных в-core
или-full
. Он также содержит сторонние модули. Модули, доступные в этом, следующие:nginx-full
является одним из наиболее многофункциональных ароматовnginx
упаковки. Как и егоlight
аналог, он находится в хранилище Вселенной. Он включает большинство основных модулей, которые являются стандартными и дополнительными в исходном архиве from-nginx, а также несколько сторонних модулей, разработанных для расширения возможностей веб-сервера nginx. Это модули следующие:nginx-extras
это самый многофункциональный вкусnginx
упаковки. И, как и егоfull
иlight
братья, он тоже находится в хранилище Вселенной. Он включает все модули,nginx-full
но также включает в себя дополнительные модули (такие как модуль Perl) и многие другие сторонние модули, разработанные для еще большего расширения возможностей веб-сервера nginx. Полный список модулей приведен ниже:nginx-naxsi
это вариант nginx, в котором доступен модуль Naxsi Web Application Firewall. Он также есть в Universe, однако этот вариант больше не поддерживается сопровождающими Debian и будет полностью удален из Ubuntu с выпуском 15.04. В дополнение к модулю Naxsi WAF, он также включает в себя гораздо более легкий набор модулей, чемnginx-full
. Полный список модулей приведен ниже:Использование ресурсов среди вкусов
Несмотря на то, что мне неизвестны какие-либо тесты, которые выполнялись для различных разновидностей
nginx
, как правило, логично предположить, что чем большеnginx
используемой вами версии с поддержкой функций , тем больше ресурсов она будет использовать.Однако, в отличие от Apache, который может быть чем-то вроде шлюхи памяти с включенным большим количеством модулей, он по-
nginx
прежнему не потребляет столько памяти, сколько Apache, когда модули включены. (Исключением из этого утверждения являетсяnaxsi
вариант. Этот вариант всегда потребляет гораздо больше ресурсов, так как это брандмауэр веб-приложений, а также веб-сервер.)Я добавлю тесты к этому ответу, если найду их, но, опять же, я не знаю ни о каких существующих тестах для различных вариантов по отношению друг к другу. И даже несмотря на сайты я бег не большой трафика, я не заметил какое - либо реальное снижение производительности между
nginx-extras
,nginx-full
илиnginx-light
на PHP инициативы сайта.источник
error.log
после установкиnginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. Это общий доступ, а не RSS, но все же заставил меня задуматься. Следовательно, производительность сомневается, но это вторично.push
модуль хорошо известен тем, что он использует много общей памяти. Насколько мне известно (и я могу немного ошибаться в этом), эта общая память используется во всех узлах веб-сервера, где может использоваться модуль push. Тем не менее, этот модуль является сторонним модулем, поэтому любые реальные проблемы с ним должны быть направлены на их сопровождающих :)backports
? И поскольку они предположительно созданы из одного и того же источника, патч, примененный командой безопасностиnginx-core
, также будет доступен-full
и-extra
, верно?nginx-core
как к другим разновидностям,nginx
доступным в этом хранилище, так как все они опираются на одну и ту же базу кода. У них просто есть разные./configure
строки для включения или отключения разных модулей.Вот очень высокоуровневая оценка, основанная в основном на описаниях в пакетах . (Я не смогу привести примеры вариантов использования для каждого, но я решил, что это достаточно, чтобы удовлетворить свое любопытство, поэтому я мог бы также внести его.)
От самого маленького до самого большого:
nginx-light: «базовая версия»
Минимальный набор модулей для базовой функциональности.
nginx-naxsi: "версия с naxsi"
Минимальный набор, плюс усиленная конфигурация «Nginx Anti Xss & Sql Injection» и необходимые плагины.
nginx-core: «базовая версия»
Стандартное развертывание nginx, за исключением сторонних модулей.
Это первый поддерживаемый Canonical пакет nginx. Он находится в "основном" хранилище Ubuntu вместо поддерживаемого сообществом хранилища "юниверс". Смотрите объявление "nginx-core теперь в Ubuntu Trusty 14.04 Main!" на архиве неофициальных сопровождающего (старшего и ныне несуществующего) блог или на копии старого поста на неофициальном блог сопровождающего :
nginx-full: «стандартная версия»
Стандартное развертывание nginx, включая часто используемые сторонние модули.
nginx-extras: «расширенная версия»
Стандартное развертывание nginx плюс несколько редко используемых и больших модулей.
источник
nginx
не поддерживает такие модули, как Apache, поэтому установкаnginx-extras
может повлиять на производительность?