Quelle est la différence entre les packs de base, complet, extra et léger pour nginx?

62

nginx sur Ubuntu est un package virtuel fourni par l'un des cinq packages des dépôts officiels (à l'adresse au moins à partir de 14.04, par défaut à nginx-core , je crois):

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

Quelle est la différence entre ces packages et quels sont les cas d'utilisation recommandés pour eux?

Cette page Wiki Debian un peu ancienne présente une comparaison des fonctionnalités entre extras , full , light et naxsi , mais aucune mention n'est faite de core . Combien a changé en 14.04?

secondaire Si je comprends bien, nginx ne prend pas en charge l'activation à l'exécution des modules comme le fait Apache. L'installation de nginx-extras impactera-t-elle les performances?

    
posée muru 27.11.2014 - 08:40
la source

2 réponses

83

Alors que la réponse de Steven touche aux points clés et à un résumé très basique de chaque saveur, je vais vous donner une description beaucoup plus large des différences, car je travaille un peu sur l’emballage, et des ensembles très différents. de modules dans chacun est absolument essentiel à une bonne réponse. Les descriptions de base ne rendent pas vraiment justice à la comparaison. (Aussi, félicitations à Steven citant mon ancien blog (et même en me qualifiant de "mainteneur". J'avais l'intention de porter le post nginx-is-coming-to-main sur mon nouveau blog, mais je n'ai pas eu l'occasion .)

Notez également que les derniers packages pour le serveur Web NGINX sont disponibles dans les PPA NGINX, gérés par moi-même, presque entièrement sur Debian. ( PPA stable (1.6.2 à partir de ce post); PPA Mainline (1.7.7 à compter de ce post, avec 1,7.8 prévu pour le 4 décembre 2014))

Les différentes saveurs de nginx :

Les différentes versions ont toutes la même version de nginx , mais les responsables du paquet Debian ont choisi les versions afin de fournir différents ensembles de fonctionnalités (pour nginx-extras ) ainsi que le strict minimum et les fonctionnalités les plus importantes. -ensemble «complet» de fonctions que les serveurs Web ont tendance à utiliser dans les sites Web. La raison exacte pour laquelle une fonctionnalité a été choisie par rapport à une autre n'est pas connue, mais lors d'une discussion supplémentaire avec l'un des responsables Debian sur IRC, une déclaration confirmant mon évaluation initiale, que chaque variante était un ensemble de fonctionnalités différent pour un cas d'utilisation différent - light pour un ensemble léger de fonctionnalités répondant au strict minimum d'hébergement de site, full pour un ensemble plus complet de fonctionnalités sans inclure des extras beaucoup plus lourds et extras pour à peu près tout ce qui est dans le paquet qui peut être inclus dans Ubuntu. naxsi , antérieur à 15.04, était la variante Naxsi avec uniquement le strict minimum de modules, naxsi pouvant nécessiter beaucoup de ressources.

Selon un des responsables de Debian de NGINX, qui coordonne régulièrement avec Upstream NGINX dans une conversation privée dont je ne peux actuellement pas poster de journaux, NGINX 2.x aura un support de module chargeable. Dans ce cas, light , full et extras deviendront des méta-paquets faisant appel aux packages individuels contenant chaque module. La date à laquelle cela devient le cas n'est pas connue, cependant, ni quels modules seront réellement capables de le faire.

Actuellement, le package virtuel nginx est conçu pour installer une des versions disponibles. Par défaut, comme nginx-core est le principal et que nous aimerions que les utilisateurs l'utilisent davantage, nginx-core est le premier élément vu et installé dans le package virtuel. (Cependant, le package nginx peut s’appuyer sur n’importe laquelle des variantes de nginx , et il est principalement là pour faciliter l’installation pour ceux qui n’ont pas besoin de préférence de saveur spécifique)

Une ventilation détaillée avec les modules spécifiques disponibles dans chaque variante (basée sur Fichier debian/control vif et Trusty debian/control fichier (les packages Naxsi ayant été supprimés dans Vivid)) est disponible ci-dessous. Notez que cela ne reflète pas les changements les plus récents dans Ubuntu, et vous devriez vous référer à ces descriptions de paquet pour vous assurer que vous avez mis à jour des informations précises :

  • nginx-core est la seule version de la section principale des dépôts Ubuntu, à partir de 14.04, et existe uniquement dans les référentiels Ubuntu (et ne se trouve pas dans le répertoire). PPA ou Debian, et ne sera jamais inclus dans Debian). Il est effectivement identique au nginx-full flaveur, mais ne contient aucun module tiers. Le raisonnement derrière l'utilisation de nginx-full comme base de cette variante était que nous voulions fournir un ensemble relativement complet de modules de base dans les binaires construits, tout en conservant les modules tiers en même temps. En tant que tel, il ne contient aucun des modules tiers, puisque l'équipe de sécurité a passé en revue le code et a constaté que les modules tiers ont des styles de codage très variables qui ne sont pas aussi bien pris en charge que nginx-tarball-included. les modules (ceci est discuté plus en détail dans le bogue de demande / rapport d'inclusion principal , qui contient les points de discussion et des discussions supplémentaires sur ce qui pourrait être inclus dans Ubuntu Main pour nginx ).Une liste complète des modules activés ici se trouve dans la description du package, que j'ai ici sélectionnée:

      

    MODULES HTTP STANDARD: Core, Access, Auth Basic, Auto Index, Browser,   Charset, GIF vide, FastCGI, Geo, Gzip, En-têtes, Index, Demandes de limites,   Zone limite, Journal, Carte, Memcached, Proxy, Referer, Rewrite, SCGI,   Split Clients, SSI, Upstream, ID utilisateur, UWSGI.

         

    MODULES HTTP OPTIONNELS: Addition, Debug, GeoIP, Précompression Gzip, HTTP Sub,   Filtre d'image, IPv6, IP réel, Spdy, SSL, statut de stub, substitution, WebDAV,   XSLT.

         

    MODULES DE COURRIER: Mail Core, IMAP, POP3, SMTP, SSL.

  • nginx-light est la saveur la plus légère de nginx disponible. Il se trouve dans le référentiel de l'univers et il faut que cela soit activé pour l'utiliser. Il ne permet pas une grande quantité de modules disponibles dans -core ou -full . Il contient également des modules tiers. Les modules disponibles sont les suivants:

      

    MODULES HTTP STANDARD: Core, Access, Auth Basic, Auto Index, Charset,   GIF vide, FastCGI, Gzip, en-têtes, index, journal, carte, proxy, réécriture, en amont.

         

    MODULES HTTP OPTIONNELS: Auth Request, Debug, Gzip Precompression, IPv6, Real   Ip, SSL, Stub Status.

         

    MODULES DE TIERS: Echo.

  • nginx-full est l'une des variantes les plus riches en fonctionnalités du package nginx . Comme son homologue light , il se trouve dans le référentiel Univers. Il active la plupart des principaux modules inclus qui sont standard et facultatifs dans l'archive source from-nginx, ainsi que plusieurs autres modules tiers conçus pour étendre les capacités du serveur Web nginx. Ses modules sont les suivants:

      

    MODULES HTTP STANDARD: Core, Access, Auth Basic, Auto Index, Browser,   Charset, GIF vide, FastCGI, Geo, Gzip, En-têtes, Index, Demandes de limites,   Zone limite, Journal, Carte, Memcached, Proxy, Referer, Rewrite, SCGI,   Split Clients, SSI, Upstream, ID utilisateur, UWSGI.

         

    MODULES HTTP OPTIONNELS: ajout, demande d'authentification, débogage, GeoIP, Gzip   Précompression, Sous-HTTP, Filtre d'image, IPv6, IP réel, Spdy, SSL, Statut de stub,   Substitution, WebDAV, XSLT.

         

    MODULES DE COURRIER: Mail Core, IMAP, POP3, SMTP, SSL.

         

    MODULES DE TIERS: Auth PAM, DAV Ext, Echo, Filtre de substitution HTTP,   File d'attente équitable en amont.

  • nginx-extras est la version la plus riche en fonctionnalités du package nginx . Et comme ses frères full et light , il se trouve également dans le référentiel de l'univers. Il active tous les modules dans nginx-full , mais inclut également des modules supplémentaires (tels que le module Perl), et de nombreux autres modules tiers conçus pour étendre encore davantage les capacités du serveur Web nginx. Sa liste complète des modules est ci-dessous:

      

    MODULES HTTP STANDARD: Core, Access, Auth Basic, Auto Index, Browser,   Charset, GIF vide, FastCGI, Geo, Gzip, En-têtes, Index, Demandes de limites,   Zone limite, Journal, Carte, Memcached, Proxy, Referer, Rewrite, SCGI,   Split Clients, SSI, Upstream, ID utilisateur, UWSGI.

         

    MODULES HTTP OPTIONNELS: ajout, demande d’authentification, débogage, Perl intégré, FLV,   GeoIP, précompression Gzip, filtre d'image, IPv6, MP4, index aléatoire, adresse IP réelle,   Lien sécurisé, Spdy, SSL, Statut de stub, Substitution, WebDAV, XSLT.

         

    MODULES DE COURRIER: Mail Core, IMAP, POP3, SMTP, SSL.

         

    MODULES DE TIERS: Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua,   Index de fantaisie, HttpHeadersMore, Filtre de substitution HTTP, http push,   Kit de développement Nginx, progression du téléchargement, file d'attente équitable en amont.

  • nginx-naxsi est la variante de nginx sur laquelle le module Naxsi Web Application Firewall est disponible. Il en est de même dans Universe, mais cette version n'est plus prise en charge par les responsables Debian et sera complètement supprimée d'Ubuntu avec la version 15.04. Outre le module Naxsi WAF, elle comprend également ensemble de modules que nginx-full . La liste complète des modules est ci-dessous:

      

    MODULES HTTP STANDARD: Core, Access, Auth Basic, Auto Index, Browser,   Charset, Core, GIF vide, FastCGI, Geo, Gzip, En-têtes, Index,   Demandes de limites, zone limite, journal, carte, Memcached, proxy, Referer,   Réécrire, diviser les clients, SSI, en amont, ID utilisateur.

         

    MODULES HTTP OPTIONNELS: Debug, IPv6, IP réel, SSL, Stub Status.

         

    MODULES DE TIERS: Naxsi, Purge de cache, Foire en amont.

Utilisation des ressources parmi les saveurs

Bien que je ne connaisse aucun benchmark ayant été exécuté sur les différentes versions de nginx , il est généralement logique de supposer que plus la version de nginx utilisée par les fonctionnalités est importante, plus il y aura de ressources. utiliser.

Cependant, contrairement à Apache, qui peut être un outil de mémoire avec plus de modules activés, nginx ne consomme toujours pas autant de mémoire que Apache lorsque les modules sont activés. (L'exception à cette instruction est la saveur naxsi .Cette saveur mange toujours beaucoup plus de ressources, car il s’agit d’un pare-feu d’application Web et d’un serveur Web.

J'ajouterai des points de référence à cette réponse si je les trouve, mais là encore, je ne connais aucun benchmark existant pour les différentes saveurs les unes par rapport aux autres. Et même si les sites que j’exécute n’ont pas un trafic important, je n’ai pas constaté de diminution réelle des performances entre nginx-extras , nginx-full ou nginx-light sur un site basé sur PHP.

    
réponse donnée Thomas Ward 04.12.2014 - 01:27
la source
12

Voici une évaluation de très haut niveau, basée principalement sur les descriptions des packages . . (Je ne parviens pas à fournir des exemples de cas d’utilisation pour chacun d’entre eux, mais je me suis efforcé de satisfaire ma curiosité et je peux aussi bien contribuer.)

Du plus petit au plus grand:

nginx-light: "version de base"

L'ensemble minimal de modules pour les fonctionnalités de base.

nginx-naxsi: "version avec naxsi"

L'ensemble minimal, plus la configuration renforcée de "Nginx Anti Xss & Sql Injection" et ses plug-ins requis.

nginx-core: "version de base"

Le déploiement nginx standard, moins les modules tiers.

Ceci est le premier paquet nginx pris en charge par Canonical. Il se trouve dans le référentiel "principal" d'Ubuntu au lieu du référentiel "univers" supporté par la communauté. Voir l'annonce "nginx-core est maintenant dans Ubuntu Trusty 14.04 Main!" sur une archive du blog non officiel (plus ancien et plus ancien) du responsable ou sur le copie de l’ancienne publication sur le blog non officiel du responsable :

  

Ubuntu Main n'inclut aucune des versions de nginx déjà établies (nginx-light, nginx-full, nginx-extras et nginx-naxsi). L'équipe de sécurité d'Ubuntu a déclaré que les modules tiers sont extrêmement différents en termes de codage et ne peuvent donc pas être pris en charge.

     

À cette fin, nous avons créé un paquet appelé nginx-core qui a été inclus dans le référentiel principal. Ce paquetage ne contient que les modules livrés avec l’archive de stock nginx. Nous n'incluons aucun module tiers avec ce package, mais uniquement les modules provenant de NGINX en amont.

nginx-full: "version standard"

Le déploiement nginx standard, y compris les modules tiers fréquemment utilisés.

nginx-extras: "version étendue"

Le déploiement nginx standard, plus plusieurs modules peu utilisés et volumineux.

    
réponse donnée Steven K 04.12.2014 - 00:25
la source

Lire d'autres questions sur les étiquettes