Яка різниця між основним, повним, додатковим та легким пакетами для nginx?


72

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впливу продуктивності?


1
Здається, хтось зробив новішу версію діаграми порівняння функцій і поділився нею з документами Google: docs.google.com/spreadsheet/…
Стівен К

1
@StevenKath зауважте, що цей документ базується виключно на Debian. Він не зачіпає nginx-core і не включає нестабільні зміни, які видаляють смак naxsi (адже це не тривіально для підтримки).
Thomas Ward

Відповіді:


99

Хоча відповідь Стівена торкається ключових моментів і дуже базового резюме того, що таке кожен аромат, я дам вам набагато більш детальний опис відмінностей, оскільки я працюю над упаковкою зовсім небагато, і дуже різні набори модулів в кожен абсолютно критичний для гарної відповіді. Основні описи не дуже справедливі для порівняння. (Крім того, кудо Стівен, цитуючи мій старший блог (і навіть посилаючись на мене як на "обслуговуючого персоналу". Я мав намір перенести nginx-приходить до головного повідомлення до свого нового блогу, але у мене не було можливості .)

Також зауважте, що останні пакети для веб-сервера NGINX доступні в PPA NGINX, який я підтримую, майже повністю від Debian. ( Стабільний РРА (1.6.2 , як цей пост); Магістраль РРА (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, який регулярно координує роботу з NGINX Upstream, в приватній розмові, про яку наразі я не можу публікувати журнали, NGINX 2.x матиме підтримку завантажуваного модуля. В цьому випадку light, fullі extrasбудуть метапакетамі , які вимагають від індивідуальних упаковок , що містять кожен модуль. Дата, коли це стане справ, невідома, однак, і які модулі насправді не зможуть це зробити.

Наразі nginxвіртуальний пакет призначений для встановлення однієї з доступних версій. За замовчуванням, як nginx-coreце в основному, і ми хотіли б, якби люди використовували його більше, nginx-coreце перший предмет, який можна побачити та спробувати встановити у віртуальному пакеті. (Однак nginxупаковка може покладатися на будь-який з ароматів nginx, і він є, головним чином, для того, щоб зробити процес трохи легшим для тих, кому не потрібні певні переваги аромату)

Детальна розбивка з конкретними модулями , доступними в будь-якому вигляді (заснована від Vivid debian/controlфайлу і Trusty debian/controlфайл (як пакети Naxsi були видалені в Vivid)) є нижчою. Зауважте, що це не відображає найсучасніших змін у Ubuntu, і вам слід звернутися до цих описів пакетів, щоб переконатися, що ви оновили точну інформацію :

  • nginx-coreє єдиним ароматом у головному розділі репозиторіїв Ubuntu станом на 14.04 і існує лише у сховищах Ubuntu (і не є в PPA або Debian, і не збирається ніколи включатися в Debian). Він ефективно ідентичний nginx-fullаромату, але не містить сторонніх модулів. Міркування щодо використанняnginx-fullв якості основи для цього варіанту було те, що ми хотіли забезпечити відносно повноцінний набір основних модулів у вбудованих бінарних файлах, одночасно утримуючи сторонні модулі. Як такий, він не містить жодного із сторонніх модулів, оскільки Команда з безпеки зробила огляд коду та виявила, що сторонні модулі мають широко різні стилі кодування, які не так добре підтримуються, як включені в nginx-tarball модулі (це більш детально обговорюється в програмі " Основний запит на включення / запит" , який містить пункти обговорення та подальший перегляд обговорень щодо того, що може бути включено в "Основний Ubuntu" nginx). Повний перелік включених тут модулів міститься в описі пакета, який я тут зазначив:

    СТАНДАРТНІ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, браузер, charset, порожній GIF, FastCGI, Geo, Gzip, заголовки, індекс, обмеження запитів, обмеження зони, журнал, карта, запомнено, проксі, референт, перезапис, SCGI , Розділені клієнти, SSI, upstream, User ID, UWSGI.

    ОПЦІОНАЛЬНІ МОДУЛИ HTTP: додавання, налагодження, GeoIP, попереднє стиснення Gzip, HTTP Sub, фільтр зображень, IPv6, реальний IP, шпигун, SSL, стан роботи, заміна, WebDAV, XSLT.

    МОДУЛИ ПОШТИ: Mail Core, IMAP, POP3, SMTP, SSL.

  • nginx-light- найлегший nginxдоступний аромат . Він знаходиться у сховищі Всесвіту, і ви повинні мати його, щоб його використовувати. Це не дозволяє велику кількість модулів, наявних у -coreабо -full. Він також містить сторонні модулі. Доступні в ньому модулі:

    СТАНДАРТНІ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, Charset, Empty GIF, FastCGI, Gzip, Headers, Index, Log, Map, Proxy, Rewrite, Upstream.

    ОПЦІОНАЛЬНІ МОДУЛИ HTTP: запит на аутентифікацію, налагодження, попередня компресія Gzip, IPv6, Real Ip, SSL, стан роботи.

    МОДУЛИ ТРЕТИХ СТОРІН: Ехо.

  • nginx-fullє одним з найбільш насичених функцій ароматів nginxупаковки. Як і його lightаналог, він знаходиться у сховищі Всесвіту. Це дає можливість більшості основних ядерних модулів, які є стандартними та необов’язковими у вихідному тарболі від-nginx, а також ще декілька сторонніх модулів, розроблених для розширення можливостей веб-сервера nginx. Це такі модулі:

    СТАНДАРТНІ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, браузер, charset, порожній GIF, FastCGI, Geo, Gzip, заголовки, індекс, обмеження запитів, обмеження зони, журнал, карта, запомнено, проксі, референт, перезапис, SCGI , Розділені клієнти, SSI, upstream, User ID, UWSGI.

    ОПЦІОНАЛЬНІ МОДУЛИ HTTP: додавання, запит на підтвердження автентичності, налагодження, GeoIP, попереднє стиснення Gzip, SubTP, фільтр зображень, IPv6, реальний IP, шпигун, 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брати, він теж є у сховищі Всесвіту. Він дозволяє використовувати всі модулі, nginx-fullале також включає додаткові модулі (такі як модуль Perl) та багато інших сторонніх модулів, розроблених для ще більшого розширення можливостей веб-сервера nginx. Повний перелік модулів наведено нижче:

    СТАНДАРТНІ МОДУЛИ HTTP: Core, Access, Auth Basic, Auto Index, браузер, charset, порожній GIF, FastCGI, Geo, Gzip, заголовки, індекс, обмеження запитів, обмеження зони, журнал, карта, запомнено, проксі, референт, перезапис, SCGI , Розділені клієнти, SSI, upstream, User ID, UWSGI.

    ОПЦІОНАЛЬНІ МОДУЛИ HTTP: додавання, запит на аутентифікацію, налагодження, вбудований Perl, FLV, GeoIP, попередня компресія Gzip, фільтр зображень, IPv6, MP4, випадковий індекс, реальна IP, захищена посилання, шпигун, SSL, стан роботи, заміна, WebDAV, XSLT.

    МОДУЛИ ПОШТИ: Mail Core, IMAP, POP3, SMTP, SSL.

    МОДУЛИ ТРЕТИХ СТОРІН: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, Fancy Index, HttpHeadersMore, HTTP Filter Substitution, 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 Quets, Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite , Спліт-клієнти, SSI, Upstream, User ID.

    ОПЦІЙНІ МОДУЛИ HTTP: налагодження, IPv6, реальний IP, SSL, стан роботи.

    МОДУЛИ ТРЕТИХ СТОРІН: Naxsi, очищення кешу, ярмарок вгору.


Використання ресурсів серед ароматів

Хоча я не знаю жодних орієнтирів, які були застосовані на різних смакових якостях 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, але все-таки мене здивувало. Звідси виступ сумнівається, але це другорядне.
муру

2
@muru pushмодуль добре відомий тим, що використовує хороший об'єм пам'яті. Наскільки мені відомо (і я можу злегка помилитися з цим), спільна пам'ять використовується на всіх сайтах веб-сервера, де може використовуватися push-модуль. Однак, цей модуль є стороннім модулем, тому будь-які реальні проблеми з ним слід спрямовувати на своїх обслуговуючих осіб :)
Thomas Ward

1
Ні, жодних питань. Чи потрапляє будь-яка з новіших версій вашого PPA backports? А оскільки вони, ймовірно, побудовані з того самого джерела, патч, застосований командою безпеки nginx-core, також буде доступний -fullі -extra, правда?
муру

3
@muru На жаль, упаковка у версії PPA здійснюється окремо від Ubuntu. В даний час стає дуже складно повернути пакет до старих версій - це в кінцевому підсумку робиться в PPA, оскільки мені не доводиться возитися зі злиттям змін Debian у змінах Ubuntu. З моменту Основного включення я не досліджував репортаж, тому що було б багато змін, які потрібно було б відмовити, щоб відповідати тому, що є в старих випусках. (а краплі пакету naxsi зараз неможливі підтримувати версії 15.04).
Thomas Ward

2
@muru І так, будь-які виправлення, застосовані як оновлення безпеки (або як стандартні оновлення версії) 14.04 і пізніше, застосовуватимуться nginx-coreяк до інших ароматів, nginxдоступних у цьому сховищі, оскільки всі вони базуються на одній базі коду. Вони просто мають різні ./configureлінії для включення або відключення різних модулів.
Thomas Ward

14

Ось дуже високий рівень оцінки, заснований в основному на описах в упаковках . (Мені не вистачає прикладів випадків використання для кожного, але я придумав це, щоб задовольнити мою цікавість, щоб я міг також сприяти цьому.)

Від найменшого до найбільшого:

nginx-light: "базова версія"

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

nginx-naxsi: "версія з naxsi"

Мінімальний набір плюс затверділа конфігурація "Nginx Anti Xss & Sql Injection" та необхідні плагіни.

nginx-core: "основна версія"

Стандартне розгортання 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 вище.

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

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

nginx-extras: "розширена версія"

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


1
Одне: як я розумію, nginxне підтримує включення модулів, як Apache, так що встановлення nginx-extrasможе вплинути на продуктивність?
муру

1
naxsi включається лише у -naxsi та -extras, а не -core або -full. Використання -extras, ймовірно, матиме вплив на продуктивність, звичайно, більше споживання пам'яті, ніж легший пакет.
Стівен К

2
Це застаріло. Я опублікую більш повне твердження з цього приводу, оскільки я маю великий вплив на пакет nginx.
Thomas Ward

1
@ThomasW. Нічого, ви не чувак, якого я цитував вище з "блогу обслуговуючого персоналу"?
Стівен К

1
@StevenKath Yeppers, і я навіть торкнувся цього питання у своїй відповіді. Мені довелося брати попередній блог в автономному режимі через те, що Wordpress був злим фрагментом, але справа все ще стоїть. Я далеко не "офіційний сервіс" в Ubuntu, але я, мабуть, найбільше обслуговування в пакеті, і, мабуть, вважаю "неофіційним обслуговуючим персоналом".
Thomas Ward
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.