nginx
sur Ubuntu est un paquet virtuel fourni par l’un des cinq paquets des référentiels officiels (au moins à partir de 14.04, à 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 ceux-ci?
Ce peu vieux Wiki Debian a une comparaison entre les fonctions extras
, full
, light
et naxsi
, mais aucune mention est faite de core
. Combien de cela a changé en 14.04?
secondary
Si je comprends bien, la nginx
prise en charge de modules tels qu'Apache n'est pas activée au moment de l'installation, de sorte que l'installation aurait un nginx-extras
impact sur les performances?
Réponses:
Tandis que la réponse de Steven aborde les points clés et constitue un résumé très élémentaire de chaque saveur, je vais vous donner une description beaucoup plus détaillée des différences, car je travaille assez sur l'emballage, et les ensembles de modules très différents dans chacun est absolument essentiel pour une bonne réponse. Les descriptions de base ne rendent pas vraiment justice à la comparaison. (En outre, félicitations à Steven qui cite mon ancien blog (et me qualifiant même de «mainteneur». Je voulais porter le post de nginx-is-coming-to-main-principal sur mon blog plus récent, mais je n'ai pas eu l'occasion de le faire. .)
Notez également que les derniers packages pour le serveur Web NGINX sont disponibles dans les PPA NGINX, maintenus par moi-même et basés presque entièrement sur Debian. ( PPA stable (1.6.2 à ce poste); PPA sur la canalisation principale (1.7.7 à ce poste, dont 1.7.8 devrait atterrir le 4 décembre 2014))
Les différentes saveurs de
nginx
:Les différentes versions sont toutes de la même version
nginx
, cependant les versions ont été choisies par les responsables de la maintenance du paquet Debian afin de fournir différents jeux de fonctionnalités (pournginx-extras
) ainsi que le strict minimum et le jeu de fonctions "complet" le plus efficace qui les serveurs Web ont tendance à être utilisés dans les sites Web. La raison exacte pour laquelle une caractéristique a été choisie par rapport à une autre ne m’est pas connue. Cependant, lors de discussions supplémentaires avec l’un des responsables de Debian sur IRC, une déclaration affirmant mon évaluation initiale a été faite, selon laquelle chaque variante était censée constituer 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 minimum requis en matière d'hébergement de site,full
pour un ensemble plus complet de fonctionnalités sans inclure des extras beaucoup plus lourds, etextras
pour à peu près tout ce qui est dans le paquet qui peut être inclus dans Ubuntu.naxsi
, avant 15.04, était la variante Naxsi spécifiquement avec seulement le strict minimum de modules, car naxsi pouvait nécessiter beaucoup de ressources.Soi-disant, selon l'un des responsables Debian de NGINX qui se coordonne régulièrement avec Upstream NGINX dans une conversation privée pour laquelle je ne peux pas publier de journaux, NGINX 2.x bénéficiera d'un support de module chargeable. Dans ce cas,
light
,full
etextras
deviendra métapaquets qui font appel à des emballages 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.Dans sa version actuelle, le
nginx
paquet virtuel est conçu pour installer l'une des versions disponibles. Par défaut, commenginx-core
dans le principal et nous aimerions que les utilisateurs l'utilisent davantage,nginx-core
est le premier élément vu et essayé-tenté dans le paquet virtuel. (Cependant, lenginx
paquet peut s’appuyer sur l’une des saveurs denginx
, et est principalement là pour faciliter l’installation un peu plus facile 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 le fichier Vivid
debian/control
et le fichier Trustydebian/control
(les packages Naxsi ayant été supprimés dans Vivid)) est disponible ci-dessous. Notez que cela ne reflète pas les modifications les plus récentes dans Ubuntu, et vous devez vous reporter à la description de ces packages pour vous assurer que vous disposez des informations les plus récentes et les plus précises :nginx-core
est la seule variante dans la section principale des référentiels Ubuntu, à compter de 14.04, et n'existe que dans les référentiels Ubuntu (et ne figure pas dans les PPA ni dans Debian, et ne sera jamais incluse dans Debian). Ennginx-full
réalité, il est identique à la version , mais ne contient aucun module tiers. Le raisonnement derrière l'utilisationnginx-full
En tant que base de cette variante, nous voulions fournir un ensemble relativement complet de modules de base dans les fichiers binaires construits, tout en excluant les modules tiers. En tant que tel, il ne contient aucun des modules tiers, car l'équipe de sécurité a examiné le code et a constaté que les modules tiers avaient des styles de codage très variés qui ne sont pas aussi bien pris en charge que nginx-tarball-included. modules (ceci est discuté plus en profondeur dans le bogue Principal Inclusion Request / Report , qui contient les points de discussion et des discussions plus approfondies sur ce qui pourrait être inclus dans Ubuntu Main pournginx
). Une liste complète des modules activés ici se trouve dans la description du paquet, que j'ai déjà choisie ici:nginx-light
est la saveur la plus légèrenginx
disponible. Il se trouve dans le référentiel Univers et vous devez l'activer 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:nginx-full
est l’un des types denginx
paquet les plus riches en fonctionnalités . Comme sonlight
homologue, il se trouve dans le référentiel Univers. Il active la plupart des modules de base inclus qui sont standard et optionnels dans l'archive source de from-nginx, ainsi que plusieurs autres modules tiers conçus pour étendre les capacités du serveur Web nginx. Ses modules sont les suivants:nginx-extras
est la saveur la plus riche en fonctionnalités dunginx
package. Et comme sonfull
et seslight
frères, il est aussi dans le référentiel Univers. Il active tous les modulesnginx-full
mais inclut également des modules supplémentaires (tels que le module Perl) et de nombreux autres modules tiers conçus pour étendre encore les capacités du serveur Web nginx. Sa liste complète de modules est ci-dessous:nginx-naxsi
est la variante de nginx pour laquelle le module Naxsi Web Application Firewall est disponible. C'est aussi dans Universe, cependant cette version n'est plus supportée par les responsables de Debian et sera complètement abandonnée d'Ubuntu à partir de la version 15.04. En plus du module Naxsi WAF, il comprend également un ensemble de modules beaucoup plus léger quenginx-full
. La liste complète des modules est ci-dessous:Utilisation des ressources parmi les saveurs
Bien que je ne sache pas que des tests de performance aient été exécutés sur les différentes versions de
nginx
, il est généralement logique de supposer que plusnginx
vous utilisez la version de vos fonctionnalités, plus elle utiliserait de ressources.Cependant, contrairement à Apache, qui peut ressembler à une pute de mémoire avec plus de modules activés,
nginx
ne consomme toujours pas autant de mémoire par rapport à Apache lorsque les modules sont activés. (L'exception à cette déclaration est lanaxsi
saveur. Cette saveur consomme toujours beaucoup plus de ressources, car il s'agit d'un pare-feu d'applications Web ainsi que d'un serveur Web.)J'ajouterai des points de repère à cette réponse si je les trouve, mais encore une fois, je ne suis au courant d'aucun point de repère existant pour les différentes saveurs les unes par rapport aux autres. Et même si les sites que je ne pas courir le trafic lourd, je ne l' ai pas remarqué une diminution réelle de la performance entre
nginx-extras
,nginx-full
ounginx-light
sur un site en PHP.la source
error.log
après avoir installénginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. C'est partagé et pas RSS, mais m'a quand même fait me poser des questions. D'où les doutes sur les performances, mais c'est secondaire.push
module est bien connu pour utiliser une bonne quantité de mémoire partagée. À ma connaissance (et je me trompe peut-être un peu là-dessus), la mémoire partagée est utilisée sur tous les sites du serveur Web sur lesquels le module Push peut être utilisé. Cependant, ce module est un module tiers. Par conséquent, tout problème réel qui le concerne devrait être adressé à leurs responsables :)backports
? Et comme ils sont vraisemblablement construits à partir de la même source, un correctif appliqué par l'équipe de sécuriténginx-core
serait également disponible pour-full
et-extra
, n'est-ce pas?nginx-core
, ainsi que les autres variantes denginx
disponibles dans ce référentiel, car ils sont tous basés sur la même base de code. Ils ont juste différentes./configure
lignes pour activer ou désactiver différents modules.Voici une évaluation de très haut niveau, basée principalement sur les descriptions dans les packages . (Je ne réussirai pas à fournir des exemples d'utilisation pour chacun, mais j'ai compris cela pour satisfaire ma curiosité afin que je puisse aussi le 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 "Nginx Anti Xss & Sql Injection" et ses plugins nécessaires.
nginx-core: "version de base"
Le déploiement nginx standard, moins les modules tiers.
Il s'agit du premier package nginx pris en charge par Canonical. Il se trouve dans le référentiel "principal" d'Ubuntu au lieu du référentiel "d'univers" pris en charge par la communauté. Voir l'annonce "nginx-core est maintenant dans Ubuntu Trusty 14.04 Main!" sur les archives du blog non officiel du responsable (ancien et maintenant disparu) ou sur la copie de l'ancien message sur le blog non officiel du responsable :
nginx-full: "version standard"
Déploiement nginx standard, y compris les modules tiers fréquemment utilisés.
nginx-extras: "version étendue"
Le déploiement standard de nginx ainsi que plusieurs modules peu utilisés et de grande taille.
la source
nginx
modules d’activation tels que Apache ne sont pas pris en charge, l’installationnginx-extras
pourrait donc avoir un impact sur les performances.