nginx
en Ubuntu es un paquete virtual proporcionado por uno de los cinco paquetes de los repositorios oficiales (al menos a partir del 14.04, por defecto nginx-core
, creo):
$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
nginx-core
nginx-extras
nginx-full
nginx-light
nginx-naxsi
¿Cuál es la diferencia entre estos paquetes y cuáles son los casos de uso recomendados para ellos?
Esta un poco viejo página Wiki de Debian tiene una comparación de características entre extras
, full
, light
y naxsi
, aunque no se hace mención de core
. ¿Cuánto ha cambiado en 14.04?
secundario
Según tengo entendido, nginx
no admite la activación en tiempo de ejecución de módulos como lo hace Apache, por lo que la instalación nginx-extras
afectaría el rendimiento.
Respuestas:
Si bien la respuesta de Steven toca los puntos clave y un resumen muy básico de lo que es cada sabor, le daré una descripción mucho más amplia de las diferencias, ya que trabajo bastante en el empaque y los conjuntos de módulos muy diferentes en cada uno es absolutamente crítico para una buena respuesta. Las descripciones básicas no le hacen mucha justicia a la comparación. (Además, felicitaciones a Steven citando mi blog anterior (e incluso refiriéndome a mí como 'mantenedor'. Tenía la intención de portar la publicación nginx-is-coming-to-main a mi blog más reciente, pero no he tenido la oportunidad .)
También tenga en cuenta que los paquetes más recientes para el servidor web NGINX están disponibles en los PPA NGINX, mantenidos por mí, basados casi por completo en Debian. ( PPA estable (1.6.2 a partir de esta publicación); PPA principal (1.7.7 a partir de esta publicación, con 1.7.8 programado para aterrizar el 4 de diciembre de 2014))
Los diferentes sabores de
nginx
:Los diferentes tipos son de la misma versión
nginx
, sin embargo, los encargados de los paquetes de Debian decidieron los tipos para proporcionar diferentes conjuntos de características (paranginx-extras
), así como el conjunto mínimo y completo de funciones "completas" más efectivas que los servidores web tienden a haberse usado en sitios web. No conozco la razón exacta por la que se eligió una característica sobre otra, sin embargo, en una discusión complementaria con uno de los mantenedores de Debian en IRC, se hizo una declaración afirmando mi evaluación inicial, que cada variante tenía la intención de ser un conjunto diferente de características para un caso de uso diferente:light
para un conjunto liviano de características que cumple con el mínimo de alojamiento de sitios,full
para un conjunto más completo de características sin incluir extras mucho más pesados, yextras
para casi todo lo que está en el paquete que se puede incluir en Ubuntu.naxsi
, antes de 15.04, era la variante de Naxsi específicamente con solo el mínimo de módulos, ya que naxsi podría ser bastante intensivo en recursos.Supuestamente, según uno de los mantenedores de Debian de NGINX que coordina regularmente con Upstream NGINX en una conversación privada de la que actualmente no puedo publicar registros, NGINX 2.x tendrá soporte de módulo cargable. En cuyo caso,
light
,full
, yextras
se convertirá en metapaquetes que piden a los envases individuales conteniendo cada módulo. Sin embargo, se desconoce la fecha en que esto se convierte en el caso, ni tampoco qué módulos serán capaces de hacerlo.Tal como está actualmente, el
nginx
paquete virtual está diseñado para instalar una de las versiones disponibles. Por defecto, comonginx-core
está en main y nos encantaría que las personas lo usaran más,nginx-core
es el primer elemento visto e intentado de instalación en el paquete virtual. (Sin embargo, elnginx
paquete puede confiar en cualquiera de los sabores denginx
, y está principalmente allí para facilitar un poco la instalación para aquellos que no necesitan ninguna preferencia de sabor específica)Un desglose detallado con los módulos específicos disponibles en cada variante (basado en el archivo Vivid
debian/control
y el archivo Trustydebian/control
(ya que los paquetes Naxsi se han eliminado en Vivid)) está disponible a continuación. Tenga en cuenta que esto no refleja los cambios más actualizados en Ubuntu, y debe consultar las descripciones de los paquetes para asegurarse de tener información actualizada y precisa :nginx-core
es el único sabor en la sección Principal de los repositorios de Ubuntu, a partir del 14.04, y existe solo en los repositorios de Ubuntu (y no está en los PPA o Debian, y nunca se incluirá en Debian). Es efectivamente idéntico alnginx-full
sabor, pero no contiene ningún módulo de terceros. El razonamiento detrás del usonginx-full
ya que la base de esta variante era que queríamos proporcionar un conjunto relativamente completo de módulos principales en los binarios integrados, al tiempo que manteníamos los módulos de terceros al mismo tiempo. Como tal, no contiene ninguno de los módulos de terceros, ya que el Equipo de Seguridad hizo una revisión del código y descubrió que los módulos de terceros tienen estilos de codificación muy diferentes que no son tan compatibles como el nginx-tarball-included módulos (esto se discute más en profundidad en el error de Solicitud / Informe de inclusión principal , que contiene los puntos de discusión y más discusiones de revisión sobre qué podría incluirse en Ubuntu Main paranginx
). Una lista completa de los módulos habilitados aquí está en la descripción del paquete, que he seleccionado aquí:nginx-light
Es el sabor más ligeronginx
disponible. Está en el repositorio de Universe y debes tener eso habilitado para usarlo. No habilita una gran cantidad de módulos disponibles en-core
o-full
. También contiene módulos de terceros. Los módulos disponibles en él son los siguientes:nginx-full
es uno de los sabores más ricos en funciones delnginx
paquete. Al igual que sulight
contraparte, está en el repositorio del Universo. Habilita la mayoría de los módulos centrales incluidos que son estándar y opcionales en el tarball fuente from-nginx, así como varios módulos de terceros más diseñados para ampliar las capacidades del servidor web nginx. Sus módulos son los siguientes:nginx-extras
es el sabor más rico en funciones delnginx
paquete. Y al igual que itsfull
andlight
brothers, también está en el repositorio del Universo. Activa todos los módulosnginx-full
pero también incluye módulos adicionales (como el módulo Perl) y muchos más módulos de terceros diseñados para ampliar aún más las capacidades del servidor web nginx. Su lista completa de módulos está a continuación:nginx-naxsi
es la variante de nginx que tiene disponible el módulo Naxsi Web Application Firewall. También está en Universe, sin embargo, este sabor ya no es compatible con los mantenedores de Debian, y se eliminará por completo de Ubuntu con la versión 15.04. Además del módulo Naxsi WAF, también incluye un conjunto de módulos mucho más ligero quenginx-full
. La lista completa de módulos está a continuación:Uso de recursos entre los sabores
Si bien no conozco ningún punto de referencia que se haya ejecutado en los distintos tipos
nginx
, normalmente es lógico suponer que cuanto más habilitadanginx
esté la versión de usted, más recursos utilizará.Sin embargo, a diferencia de Apache, que puede ser una especie de puta de memoria con más módulos habilitados,
nginx
todavía no consume tanta memoria en comparación con Apache cuando los módulos están habilitados. (La excepción a esta declaración es elnaxsi
sabor. Ese sabor siempre consume muchos más recursos, ya que es un firewall de aplicaciones web y un servidor web).Agregaré puntos de referencia a esta respuesta si los encuentro, pero nuevamente, no conozco ningún punto de referencia existente para los diversos sabores entre sí. Y a pesar de que los sitios que ejecutan no tienen mucho tráfico, no he notado ninguna disminución del rendimiento real entre
nginx-extras
,nginx-full
onginx-light
en un sitio PHP impulsada.fuente
error.log
después de instalarnginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. Es compartido y no RSS, pero aún así me hizo preguntarme. De ahí las dudas de rendimiento, pero eso es secundario.push
módulo es conocido por usar una buena cantidad de memoria compartida. Que yo sepa (y puedo estar un poco equivocado en esto), esa memoria compartida se usa en todos los sitios del servidor web donde se podría usar el módulo de inserción. Sin embargo, ese módulo es un módulo de terceros, por lo que cualquier problema real con él debe dirigirse a sus mantenedores :)backports
? Y dado que presumiblemente están construidos a partir de la misma fuente, un parche aplicado por el equipo de Seguridadnginx-core
también estaría disponible-full
y-extra
, ¿no?nginx-core
, así como a los otros saboresnginx
disponibles en ese repositorio, ya que todos se basan en la misma base de código. Solo tienen diferentes./configure
líneas para habilitar o deshabilitar diferentes módulos.Aquí hay una evaluación de muy alto nivel, basada principalmente en las descripciones de los paquetes . (Voy a estar a la altura de entregar ejemplos de casos de uso para cada uno, pero descubrí esto para satisfacer mi curiosidad, así que también podría contribuir).
De menor a mayor:
nginx-light: "versión básica"
El conjunto mínimo de módulos para la funcionalidad básica.
nginx-naxsi: "versión con naxsi"
El conjunto mínimo, más la configuración reforzada "Nginx Anti Xss & Sql Injection" y sus complementos necesarios.
nginx-core: "versión central"
La implementación estándar de nginx, menos los módulos de terceros.
Este es el primer paquete nginx compatible con Canonical. Está en el repositorio "principal" de Ubuntu en lugar del repositorio "universo" compatible con la comunidad. Vea el anuncio "¡nginx-core ahora está en Ubuntu Trusty 14.04 Main!" en un archivo del blog no oficial del mantenedor (antiguo y ahora difunto) o en la copia de la publicación anterior en el blog no oficial del mantenedor :
nginx-full: "versión estándar"
La implementación estándar de nginx, incluidos los módulos de terceros de uso frecuente.
nginx-extras: "versión extendida"
La implementación estándar de nginx más varios módulos poco utilizados y de gran tamaño.
fuente
nginx
no admite módulos habilitadores como lo hace Apache, por lo que la instalaciónnginx-extras
podría afectar el rendimiento.