nginx
on Ubuntu ist ein virtuelles Paket, das von einem von fünf Paketen aus den offiziellen Repositories bereitgestellt wird (mindestens ab 14.04, standardmäßig nginx-core
, glaube ich):
$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
nginx-core
nginx-extras
nginx-full
nginx-light
nginx-naxsi
Was ist der Unterschied zwischen diesen Paketen und welche Anwendungsfälle werden für sie empfohlen?
Diese etwas alte Debian - Wiki - Seite hat einen Vergleich der Leistungsmerkmale extras
, full
, light
und naxsi
, aber keine Erwähnung ist aus core
. Wie viel hat sich in 14.04 verändert?
Sekundär
Wie ich es verstehe, nginx
unterstützt keine Laufzeit von Modulen ermöglicht wie Apache funktioniert, so würde die Installation von nginx-extras
Schlagleistung?
Antworten:
Während die Antwort von Steven die wichtigsten Punkte und eine sehr grundlegende Zusammenfassung der einzelnen Geschmacksrichtungen anspricht, werde ich Ihnen die Unterschiede, die sich aus meiner Arbeit an der Verpackung ergeben, und die sehr unterschiedlichen Sätze von Modulen in der Verpackung näher erläutern Jeder ist absolut entscheidend für eine gute Antwort. Die Grundbeschreibungen werden dem Vergleich nicht sehr gerecht. (Außerdem ein großes Lob an Steven, der mein älteres Blog zitiert (und mich sogar als "Betreuer" bezeichnet). Ich wollte den Nginx-Coming-To-Main-Beitrag auf mein neueres Blog portieren, hatte aber keine Gelegenheit dazu .)
Beachten Sie auch, dass die neuesten Pakete für den NGINX-Webserver in den von mir gepflegten NGINX-PPAs verfügbar sind, die fast ausschließlich auf Debian basieren. ( Stabiles PPA (1.6.2 ab diesem Post); Haupt- PPA (1.7.7 ab diesem Post, 1.7.8 soll am 4. Dezember 2014 landen)
Die verschiedenen Geschmacksrichtungen von
nginx
:Die verschiedenen Geschmacksrichtungen sind alle die gleiche Version von
nginx
, jedoch wurden die Geschmacksrichtungen von den Betreuern des Debian-Pakets ausgewählt, um verschiedene Funktionssätze (fürnginx-extras
) sowie das absolute Minimum und den effektivsten 'vollständigen' Funktionssatz bereitzustellen , der Webserver werden in der Regel in Websites verwendet. Der genaue Grund, warum ein Feature gegenüber einem anderen ausgewählt wurde, ist mir nicht bekannt. In einer ergänzenden Diskussion mit einem der Debian-Betreuer im IRC wurde jedoch eine Aussage getroffen, die meine anfängliche Einschätzung bestätigte, dass für jede Variante ein anderer Satz von Features vorgesehen war ein anderer Anwendungsfall -light
für ein leichtgewichtiges Set an Funktionen, das ein Minimum an Site-Hosting erfüllt,full
für ein umfassenderes Set an Funktionen, ohne viel schwerere Extras einzubeziehen, undextras
für so ziemlich alles, was in dem Paket enthalten ist, das in Ubuntu enthalten sein kann.naxsi
Vor dem 15.04. war die Naxsi-Variante speziell mit nur einem Minimum an Modulen ausgestattet, da Naxsi relativ ressourcenintensiv sein kann.Angeblich wird NGINX 2.x laut einem der Debian-Betreuer von NGINX, der sich regelmäßig mit Upstream NGINX in einer privaten Unterhaltung abstimmt, von der ich derzeit keine Protokolle posten kann, Unterstützung für ladbare Module haben. In diesem Fall werden
light
,full
undextras
zu Metapaketen, die die einzelnen Pakete aufrufen, die die einzelnen Module enthalten. Das Datum, an dem dies der Fall ist, ist jedoch nicht bekannt und auch nicht, welche Module dies tatsächlich können.Aus heutiger Sicht ist das
nginx
virtuelle Paket so konzipiert, dass nur eine der verfügbaren Versionen installiert wird. Standardmäßig ist das erste Element, das im virtuellen Paket gesehen und installiert wird , wienginx-core
es in main beschrieben ist, und wir würden es begrüßen, wenn Einzelpersonen es häufiger verwenden würdennginx-core
. (Dienginx
Verpackung kann sich jedoch auf eine der Geschmacksrichtungen von verlassennginx
und ist hauptsächlich dazu da, die Installation für diejenigen, die keine bestimmte Geschmacksrichtung bevorzugen, ein wenig zu vereinfachen.)Eine detaillierte Aufschlüsselung der in jeder Variante verfügbaren Module (basierend auf der Vivid-
debian/control
Datei und der Trusty-debian/control
Datei (da die Naxsi-Pakete in Vivid entfernt wurden)) finden Sie weiter unten. Beachten Sie, dass dies nicht die aktuellsten Änderungen in Ubuntu widerspiegelt, und Sie sollten sich auf diese Paketbeschreibungen beziehen, um sicherzustellen, dass Sie über aktualisierte, genaue Informationen verfügen :nginx-core
ist die einzige Variante im Hauptabschnitt der Ubuntu-Repositories ab 14.04 und existiert nur in den Ubuntu-Repositories (und ist nicht in den PPAs oder Debian enthalten und wird in Debian niemals enthalten sein). Es ist praktisch identisch mit demnginx-full
Geschmack, enthält jedoch keine Module von Drittanbietern. Die Gründe für die Verwendung vonnginx-full
Als Basis für diese Variante wollten wir einen relativ vollständigen Satz von Kernmodulen in den erstellten Binärdateien bereitstellen und gleichzeitig Module von Drittanbietern fernhalten. Als solches enthält es keine Module von Drittanbietern, da das Sicherheitsteam eine Überprüfung des Codes durchführte und feststellte, dass Module von Drittanbietern sehr unterschiedliche Codierungsstile aufweisen, die nicht so gut unterstützt werden wie die in nginx-tarball-included enthaltenen Module (dies wird ausführlicher im Main Inclusion Request / Report-Bug besprochen , der die Diskussionspunkte und weitere Überprüfungsdiskussionen darüber enthält, wofür Ubuntu Main enthalten sein könntenginx
). Eine vollständige Liste der hier aktivierten Module finden Sie in der Paketbeschreibung, die ich hier nicht ausgewählt habe:nginx-light
ist der leichteste Geschmack, dennginx
es gibt. Es befindet sich im Universum-Repository und muss aktiviert sein, damit Sie es verwenden können. Eine große Anzahl der in-core
oder verfügbaren Module wird nicht aktiviert-full
. Es enthält auch Module von Drittanbietern. Die darin verfügbaren Module sind wie folgt:nginx-full
ist einer der funktionsreicheren Geschmacksrichtungen desnginx
Pakets. Wie seinlight
Gegenstück befindet es sich im Universum-Repository. Es aktiviert die meisten der im Quell-Tarball von nginx standardmäßig und optional enthaltenen Kernmodule sowie mehrere weitere Module von Drittanbietern, mit denen die Funktionen des nginx-Webservers erweitert werden sollen. Die Module sind wie folgt:nginx-extras
ist der funktionsreichste Geschmack dernginx
Packung. Und wie seinfull
und seinelight
Brüder befindet es sich auch im Universum-Repository. Es aktiviert alle Module innginx-full
, enthält aber auch zusätzliche Module (wie das Perl-Modul) und viele weitere Module von Drittanbietern, mit denen die Funktionen des nginx-Webservers noch weiter erweitert werden können. Die vollständige Liste der Module finden Sie unten:nginx-naxsi
ist die Variante von nginx, für die das Naxsi Web Application Firewall-Modul verfügbar ist. Es ist ebenfalls im Universum, jedoch wird diese Variante von Debian-Betreuern nicht mehr unterstützt und wird mit dem Release 15.04 vollständig aus Ubuntu entfernt. Zusätzlich zum Naxsi WAF-Modul enthält es auch einen viel leichteren Satz von Modulen alsnginx-full
. Die vollständige Liste der Module finden Sie unten:Ressourcennutzung unter den Aromen
Obwohl mir keine Benchmarks bekannt sind, die für die verschiedenen
nginx
Varianten von ausgeführt wurden, ist es in der Regel logisch anzunehmen, dass je funktionsfähiger die vonnginx
Ihnen verwendete Version ist , desto mehr Ressourcen würden verwendet.Im Gegensatz zu Apache, bei dem es sich um eine Art Speicherhure mit mehr aktivierten Modulen handeln kann,
nginx
wird jedoch im Vergleich zu Apache bei aktivierten Modulen immer noch nicht so viel Speicher benötigt. (Die Ausnahme zu dieser Anweisung ist dienaxsi
Variante. Diese Variante beansprucht immer viel mehr Ressourcen, da es sich um eine Webanwendungsfirewall sowie einen Webserver handelt.)Ich werde dieser Antwort Benchmarks hinzufügen, wenn ich sie finde, aber auch hier sind mir keine vorhandenen Benchmarks für die verschiedenen Geschmacksrichtungen gegeneinander bekannt. Und auch wenn die Seiten , die ich laufen habe nicht vielen Verkehr, ich habe keinen wirklichen Leistungsabfall zwischen bemerkt
nginx-extras
,nginx-full
odernginx-light
auf einer PHP-driven Website.quelle
error.log
nachdem ich installiertnginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. Es ist geteilt und kein RSS, aber ich habe mich trotzdem gewundert. Daher die Performance-Zweifel, aber das ist zweitrangig.push
Modul ist bekannt dafür, dass es ein gutes Stück Shared Memory verwendet. Meines Wissens (und möglicherweise irre ich mich dabei) wird der gemeinsam genutzte Speicher auf allen Websites auf dem Webserver verwendet, auf denen das Push-Modul verwendet werden kann. Dieses Modul ist jedoch ein Modul von Drittanbietern, daher sollten alle tatsächlichen Probleme an deren Betreuer gerichtet werden :)backports
? Und da sie vermutlich aus derselben Quelle gebaut, ein vom Sicherheitsteam angewandt Patchnginx-core
wäre auch zur Verfügung-full
und-extra
, nicht wahr?nginx-core
auch für die anderennginx
in diesem Repository verfügbaren Versionen, da sie alle auf derselben Codebasis basieren. Sie haben nur verschiedene./configure
Leitungen, um verschiedene Module zu aktivieren oder zu deaktivieren.Hier ist eine sehr allgemeine Einschätzung, die hauptsächlich auf den Beschreibungen in den Paketen basiert . (Ich werde es nicht schaffen, für jedes Beispiel Anwendungsfälle zu liefern, aber ich habe dies herausgefunden, um meine Neugier zu befriedigen, damit ich es auch beisteuern kann.)
Vom kleinsten zum größten:
nginx-light: "Basisversion"
Der minimale Satz von Modulen für die Grundfunktionalität.
nginx-naxsi: "version mit naxsi"
Das minimale Set plus die gehärtete "Nginx Anti Xss & Sql Injection" -Konfiguration und die erforderlichen Plugins.
nginx-core: "core version"
Die Standard-Nginx-Bereitstellung, abzüglich der Module von Drittanbietern.
Dies ist das erste von Canonical unterstützte Nginx-Paket. Es befindet sich im "Haupt" -Repository von Ubuntu anstelle des von der Community unterstützten "Universums" -Repositorys. Siehe die Ankündigung "Nginx-Core ist jetzt in Ubuntu Trusty 14.04 Main!" In einem Archiv des inoffiziellen Blogs des Betreuers (älter und nicht mehr vorhanden) oder auf der Kopie des alten Posts im inoffiziellen Blog des Betreuers :
nginx-full: "standard version"
Die Standard-Nginx-Bereitstellung, einschließlich häufig verwendeter Module von Drittanbietern.
Nginx-Extras: "Extended Version"
Die Standard-Nginx-Bereitstellung plus mehrere selten verwendete und umfangreiche Module.
quelle
nginx
wird die Aktivierung von Modulen wie Apache nicht unterstützt. Würde die Installation alsonginx-extras
die Leistung beeinträchtigen?