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ür nginx-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
und extras
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 , wie nginx-core
es in main beschrieben ist, und wir würden es begrüßen, wenn Einzelpersonen es häufiger verwenden würden nginx-core
. (Die nginx
Verpackung kann sich jedoch auf eine der Geschmacksrichtungen von verlassen nginx
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 dem nginx-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önnte nginx
). Eine vollständige Liste der hier aktivierten Module finden Sie in der Paketbeschreibung, die ich hier nicht ausgewählt habe:
STANDARD-HTTP-MODULE: Kern, Zugriff, Auth Basic, Auto-Index, Browser, Zeichensatz, leeres GIF, FastCGI, Geo, Gzip, Header, Index, Grenzanforderungen, Grenzzone, Protokoll, Karte, Memcached, Proxy, Referer, Rewrite, SCGI , Split Clients, SSI, Upstream, Benutzer-ID, UWSGI.
OPTIONALE HTTP-MODULE: Hinzufügen, Debuggen, GeoIP, Gzip-Vorkomprimierung, HTTP-Sub, Bildfilter, IPv6, Real IP, Spdy, SSL, Stub-Status, Substitution, WebDAV, XSLT.
MAIL-MODULE: Mail Core, IMAP, POP3, SMTP, SSL.
nginx-light
ist der leichteste Geschmack, den nginx
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:
STANDARD-HTTP-MODULE: Kern, Zugriff, Auth Basic, Auto-Index, Zeichensatz, leeres GIF, FastCGI, Gzip, Header, Index, Protokoll, Karte, Proxy, Umschreiben, Upstream.
OPTIONALE HTTP-MODULE: Authentifizierungsanforderung, Debugging, Gzip-Vorkomprimierung, IPv6, Real IP, SSL, Stub-Status.
DRITTMODULE: Echo.
nginx-full
ist einer der funktionsreicheren Geschmacksrichtungen des nginx
Pakets. Wie sein light
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:
STANDARD-HTTP-MODULE: Kern, Zugriff, Auth Basic, Auto-Index, Browser, Zeichensatz, leeres GIF, FastCGI, Geo, Gzip, Header, Index, Grenzanforderungen, Grenzzone, Protokoll, Karte, Memcached, Proxy, Referer, Rewrite, SCGI , Split Clients, SSI, Upstream, Benutzer-ID, UWSGI.
OPTIONALE HTTP-MODULE: Hinzufügen, Authentifizierungsanforderung, Debuggen, GeoIP, Gzip-Vorkomprimierung, HTTP-Sub, Bildfilter, IPv6, echte IP, Spdy, SSL, Stub-Status, Substitution, WebDAV, XSLT.
MAIL-MODULE: Mail Core, IMAP, POP3, SMTP, SSL.
DRITTMODULE: Auth PAM, DAV Ext, Echo, HTTP-Substitutionsfilter, Upstream Fair Queue.
nginx-extras
ist der funktionsreichste Geschmack der nginx
Packung. Und wie sein full
und seine light
Brüder befindet es sich auch im Universum-Repository. Es aktiviert alle Module in nginx-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:
STANDARD-HTTP-MODULE: Kern, Zugriff, Auth Basic, Auto-Index, Browser, Zeichensatz, leeres GIF, FastCGI, Geo, Gzip, Header, Index, Grenzanforderungen, Grenzzone, Protokoll, Karte, Memcached, Proxy, Referer, Rewrite, SCGI , Split Clients, SSI, Upstream, Benutzer-ID, UWSGI.
OPTIONALE HTTP-MODULE: Hinzufügen, Authentifizierungsanforderung, Debuggen, Eingebettetes Perl, FLV, GeoIP, Gzip-Vorkomprimierung, Bildfilter, IPv6, MP4, Zufallsindex, Real IP, Sichere Verbindung, Spdy, SSL, Stub-Status, Substitution, WebDAV, XSLT.
MAIL-MODULE: Mail Core, IMAP, POP3, SMTP, SSL.
DRITTMODULE: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, Fancy Index, HTTP HeadersMore, HTTP Substitution Filter, HTTP Push, Nginx Development Kit, Upload-Fortschritt, Upstream Fair Queue.
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 als nginx-full
. Die vollständige Liste der Module finden Sie unten:
STANDARD-HTTP-MODULE: Kern, Zugriff, Auth Basic, Auto-Index, Browser, Zeichensatz, Kern, leeres GIF, FastCGI, Geo, Gzip, Header, Index, Grenzanforderungen, Grenzzone, Protokoll, Karte, Memcached, Proxy, Referer, Rewrite , Split Clients, SSI, Upstream, Benutzer-ID.
OPTIONALE HTTP-MODULE: Debug, IPv6, Real IP, SSL, Stub-Status.
DRITTMODULE: Naxsi, Cache Purge, Upstream Fair.
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 von nginx
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 die naxsi
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
oder nginx-light
auf einer PHP-driven Website.