Qual é a diferença entre os pacotes core, full, extras e light para o nginx?

59

nginx no Ubuntu é um pacote virtual fornecido por um dos cinco pacotes dos repositórios oficiais (em pelo menos a partir de 14.04, padrão para nginx-core , eu acredito):

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

Qual é a diferença entre esses pacotes e quais são os casos de uso recomendados para eles?

Esta página Wiki do Debian bastante antiga tem uma comparação de recursos entre extras , full , light e naxsi , mas nenhuma menção é feita de core . Quanto mudou em 14.04?

secundário Pelo que entendi, nginx não suporta a ativação de tempo de execução de módulos como o Apache, portanto, instalando nginx-extras desempenho de impacto?

    
por muru 27.11.2014 / 08:40

2 respostas

79

Enquanto a resposta de Steven aborda os pontos-chave e um resumo muito básico do que cada sabor é, eu vou te dar uma descrição muito maior das diferenças, como eu trabalho na embalagem um pouco, e os conjuntos muito diferentes de módulos em cada é absolutamente crítico para uma boa resposta. As descrições básicas não fazem muita justiça à comparação. (Além disso, parabéns ao Steven citando meu blog mais antigo (e até me referindo a mim como um 'mantenedor'). Eu pretendia levar a postagem nginx-coming-to-main para o meu blog mais novo, mas não tive a oportunidade .)

Observe também que os pacotes mais recentes para o servidor web NGINX estão disponíveis nos PPAs NGINX, mantidos por mim, baseados quase inteiramente fora do Debian. ( PPA estável (1.6.2 a partir deste post); MPA PPA (1.7.7 a partir deste post, com 1.7.8 previsto para o 4 de dezembro de 2014))

Os diferentes sabores de nginx :

Os diferentes sabores são todos da mesma versão de nginx , no entanto, os sabores foram decididos pelos mantenedores do pacote Debian para fornecer conjuntos de recursos diferentes (para nginx-extras ), bem como o mínimo e o maior recurso - Conjunto de funções "completo" e efetivo que os servidores da Web tendem a usar em sites. A razão exata pela qual um recurso foi escolhido em detrimento de outro não é conhecido para mim, entretanto em uma discussão suplementar com um dos mantenedores do Debian no IRC, uma afirmação foi feita afirmando minha avaliação inicial, que cada variante deveria ser um conjunto diferente de recursos para um caso de uso diferente - light para um conjunto leve de recursos que atende ao mínimo de hospedagem de sites, full para um conjunto mais completo de recursos sem incluir extras muito mais pesados e extras para praticamente tudo que é no pacote que pode ser incluído no Ubuntu. naxsi , antes de 15.04, era a variante Naxsi especificamente com apenas o mínimo de módulos, já que o naxsi poderia ser bastante intensivo em recursos.

Supostamente, de acordo com um dos mantenedores Debian do NGINX que está regularmente coordenando com o Upstream NGINX em uma conversa privada da qual eu não posso atualmente postar logs, o NGINX 2.x terá suporte a módulos carregáveis. Nesse caso, light , full e extras se tornarão meta-pacotes que invocam os pacotes individuais que contêm cada módulo. A data em que isso se torna o caso não é conhecida, no entanto, nem quais módulos realmente serão capazes de fazer isso.

Como está atualmente, o pacote nginx virtual foi projetado para instalar apenas uma das versões disponíveis. Por padrão, como nginx-core está na main e nós adoraríamos se os indivíduos o usassem mais, nginx-core é o primeiro item visto e tentado por instalação no pacote virtual. (No entanto, o pacote nginx pode confiar em qualquer um dos sabores de nginx e está principalmente lá para tornar a instalação um pouco mais fácil para aqueles que não precisam de nenhuma preferência específica de sabor)

Uma análise detalhada com os módulos específicos disponíveis em cada variante (com base no Arquivo vivid debian/control e o Trusty debian/control file (como os pacotes Naxsi foram removidos no Vivid)) está disponível abaixo. Observe que isso não reflete as alterações mais atualizadas do Ubuntu, e você deve consultar essas descrições de pacote para ter certeza de que você atualizou as informações precisas :

  • nginx-core é o único sabor na seção Principal dos Repositórios do Ubuntu, a partir de 14.04, e existe somente nos repositórios do Ubuntu (e não está no PPAs ou Debian, e não será incluído no Debian nunca). Ele é efetivamente idêntico ao sabor nginx-full , mas não contém módulos de terceiros. O raciocínio por trás do uso de nginx-full como base para essa variante era que queríamos fornecer um conjunto relativamente completo de módulos principais nos binários criados, enquanto mantínhamos os módulos de terceiros ao mesmo tempo. Como tal, ele não contém nenhum dos módulos de terceiros, já que a equipe de segurança fez uma revisão do código e descobriu que os módulos de terceiros têm estilos de codificação amplamente variáveis que não são tão bem suportados quanto o targin-nginx incluído módulos (isso é discutido com mais profundidade no Principal Pedido de Inclusão / Relatar erro , que contém os pontos de discussão e analisa as discussões sobre o que poderia ser incluído no Ubuntu Main para nginx ).Uma lista completa dos módulos habilitados aqui está na descrição do pacote, que eu determinei aqui:

      

    MÓDULOS HTTP PADRÃO: Núcleo, Acesso, Autenticação Básica, Índice Automático, Navegador,   Charset, GIF Vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de Limite,   Limite de Zona, Log, Mapa, Memcached, Proxy, Referer, Rewrite, SCGI,   Clientes Divididos, SSI, Upstream, ID do Usuário, UWSGI.

         

    MÓDULOS HTTP OPCIONAIS: Adição, Depuração, GeoIP, Reprecompressão do Gzip, HTTP Sub,   Filtro de Imagem, IPv6, IP Real, Spdy, SSL, Status de Stub, Substituição, WebDAV,   XSLT.

         

    MÓDULOS DE CORREIO: Mail Core, IMAP, POP3, SMTP, SSL.

  • nginx-light é o sabor mais leve de nginx disponível. Está no repositório Universe e você tem que ter isso habilitado para usá-lo. Ele não habilita uma grande quantidade dos módulos disponíveis em -core ou -full . Também contém módulos de terceiros. Os módulos disponíveis são os seguintes:

      

    MÓDULOS HTTP PADRÃO: Núcleo, Acesso, Autenticação Básica, Índice Automático, Charset,   GIF Vazio, FastCGI, Gzip, Cabeçalhos, Índice, Log, Mapa, Proxy, Reescrever, Upstream.

         

    MÓDULOS HTTP OPCIONAIS: solicitação de autenticação, depuração, recompra do Gzip, IPv6, real   Ip, SSL, Stub Status.

         

    MÓDULOS DE TERCEIROS: Eco.

  • nginx-full é um dos sabores mais ricos em recursos do pacote nginx . Como sua contraparte light , ela está no repositório Universe. Ele habilita a maioria dos principais módulos incluídos que são padrão e opcionais no tarball de origem do nginx, bem como vários outros módulos de terceiros projetados para estender os recursos do servidor da Web nginx. Seus módulos são os seguintes:

      

    MÓDULOS HTTP PADRÃO: Núcleo, Acesso, Autenticação Básica, Índice Automático, Navegador,   Charset, GIF Vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de Limite,   Limite de Zona, Log, Mapa, Memcached, Proxy, Referer, Rewrite, SCGI,   Clientes Divididos, SSI, Upstream, ID do Usuário, UWSGI.

         

    MÓDULOS HTTP OPCIONAIS: adição, solicitação de autenticação, depuração, geoip, gzip   Pré-compressão, HTTP Sub, Filtro de Imagem, IPv6, IP Real, Spdy, SSL, Stub Status,   Substituição, WebDAV, XSLT.

         

    MÓDULOS DE CORREIO: Mail Core, IMAP, POP3, SMTP, SSL.

         

    MÓDULOS DE TERCEIROS: Auth PAM, DAV Ext, Eco, Filtro de Substituição de HTTP,   Fila justa a montante.

  • nginx-extras é o sabor mais rico em recursos do pacote nginx . E como seus full e light brothers, ele também está no repositório Universe. Ele habilita todos os módulos em nginx-full , mas também inclui módulos adicionais (como o módulo Perl) e muitos outros módulos de terceiros projetados para estender ainda mais os recursos do servidor da Web nginx. Sua lista completa de módulos está abaixo:

      

    MÓDULOS HTTP PADRÃO: Núcleo, Acesso, Autenticação Básica, Índice Automático, Navegador,   Charset, GIF Vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de Limite,   Limite de Zona, Log, Mapa, Memcached, Proxy, Referer, Rewrite, SCGI,   Clientes Divididos, SSI, Upstream, ID do Usuário, UWSGI.

         

    MÓDULOS HTTP OPCIONAIS: adição, solicitação de autenticação, depuração, Perl incorporado, FLV,   GeoIP, recompressão Gzip, filtro de imagem, IPv6, MP4, índice aleatório, IP real,   Link Seguro, Spdy, SSL, Status do Stub, Substituição, WebDAV, XSLT.

         

    MÓDULOS DE CORREIO: Mail Core, IMAP, POP3, SMTP, SSL.

         

    MÓDULOS DE TERCEIROS: Auth PAM, Chunkin, Ext DAV, Eco, Embedded Lua,   Índice de fantasia, HttpHeadersMore, Filtro de substituição de HTTP, http push,   Kit de desenvolvimento do Nginx, progresso de upload, fila justa upstream.

  • nginx-naxsi é a variante do nginx que possui o módulo Naxsi Web Application Firewall disponível. Ele também está no Universe, no entanto esse sabor não é mais suportado pelos mantenedores Debian, e será completamente abandonado do Ubuntu com o lançamento 15.04. Além do módulo WAF Naxsi, ele também inclui um muito mais leve conjunto de módulos que nginx-full . A lista completa de módulos está abaixo:

      

    MÓDULOS HTTP PADRÃO: Núcleo, Acesso, Autenticação Básica, Índice Automático, Navegador,   Charset, Core, GIF Vazio, FastCGI, Geo, Gzip, Cabeçalhos, Index,   Limite de Pedidos, Limite de Zona, Log, Mapa, Memcached, Proxy, Referer,   Reescreva, Dividir Clientes, SSI, Upstream, ID do Usuário.

         

    MÓDULOS HTTP OPCIONAIS: depuração, IPv6, IP real, SSL, status de stub.

         

    MÓDULOS DE TERCEIROS: Naxsi, Cache Purge, Upstream Fair.

Uso de recursos entre os sabores

Embora não tenha conhecimento de quaisquer comparativos de mercado que tenham sido executados nos vários tipos de nginx , normalmente é lógico supor que quanto mais recursos forem habilitados, a versão de nginx que você usar usará usar.

No entanto, ao contrário do Apache, que pode ser uma espécie de prostituta de memória com mais módulos ativados, nginx ainda não consome tanta memória comparado ao Apache quando os módulos são ativados. (A exceção a essa declaração é o naxsi flavor.Esse sabor sempre consome muito mais recursos, pois é um Web Application Firewall e um servidor da Web.

Vou adicionar referências a esta resposta se as encontrar, mas, novamente, não tenho conhecimento de quaisquer referências existentes para os vários tipos entre si. E mesmo que os sites que eu executo não tenham tráfego pesado, eu não notei nenhuma diminuição real de desempenho entre nginx-extras , nginx-full ou nginx-light em um site controlado por PHP.

    
por Thomas Ward 04.12.2014 / 01:27
11

Aqui está uma avaliação de alto nível, baseada principalmente em as descrições nos pacotes . (Eu vou ficar aquém de fornecer casos de uso de exemplo para cada um, mas eu percebi isso muito para satisfazer a minha curiosidade, então eu também posso contribuir com isso.)

Do menor para o maior:

nginx-light: "versão básica"

O conjunto mínimo de módulos para funcionalidade básica.

nginx-naxsi: "versão com naxsi"

O conjunto mínimo, além da configuração "Nginx Anti Xss & Injeção Sql" endurecida e seus plug-ins necessários.

nginx-core: "versão principal"

A implementação nginx padrão, menos os módulos de terceiros.

Este é o primeiro pacote nginx suportado pela Canonical. Está no repositório "principal" do Ubuntu em vez do repositório "universo" suportado pela comunidade. Veja o anúncio "nginx-core está agora no Ubuntu Trusty 14.04 Main!" em um arquivo do blog não-oficial (mais antigo e agora extinto) do mantenedor ou no cópia da postagem antiga no blog não oficial do mantenedor :

  

nenhum dos sabores já estabelecidos do nginx está incluído no Ubuntu Main (nginx-light, nginx-full, nginx-extras e nginx-naxsi). A equipe de segurança do Ubuntu disse que os módulos de terceiros são muito diferentes na codificação e, portanto, não podem ser suportados.

     

Para isso, criamos um pacote chamado nginx-core, que foi incluído no repositório principal. Este pacote contém apenas os módulos fornecidos com o tarball nginx padrão. Nós não incluímos nenhum módulo de terceiros com este pacote, apenas os módulos que vêm do NGINX upstream.

nginx-full: "versão padrão"

A implementação nginx padrão, incluindo módulos de terceiros usados com frequência.

nginx-extras: "versão estendida"

A implementação padrão do nginx, além de vários módulos pouco usados e pouco usados.

    
por Steven K 04.12.2014 / 00:25

Tags