Enquanto a resposta de Steven aborda os pontos-chave e um resumo muito básico de cada sabor, darei uma descrição muito maior das diferenças, enquanto trabalho bastante na embalagem e nos conjuntos de módulos muito diferentes em cada um é 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 a Steven por citar meu blog mais antigo (e até mesmo por me referir como um 'mantenedor'. Eu pretendia portar a publicação nginx-está-vindo-para-principal) em meu blog mais recente, 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); PPA principal (1.7.7 a partir deste post, com 1.7.8 programado para 4 de dezembro de 2014))
Os diferentes sabores de nginx
:
Os diferentes sabores são todos da mesma versão nginx
, no entanto, os sabores foram decididos pelos mantenedores de pacotes Debian para fornecer diferentes conjuntos de recursos (para nginx-extras
), bem como o mínimo necessário e o conjunto completo de funções com mais recursos que servidores da web tendem a ter usado em sites. A razão exata pela qual um recurso foi escolhido em detrimento de outro não é conhecida por mim, no entanto, em discussões suplementares com um dos mantenedores do Debian no IRC, foi feita uma declaração afirmando minha avaliação inicial, de que cada variante se destinava a ser um conjunto diferente de recursos para um caso de uso diferente - light
para um conjunto leve de recursos que atenda ao mínimo de hospedagem de sites, full
para um conjunto mais completo de recursos sem incluir extras muito mais pesados, eextras
para praticamente tudo o que está no pacote que pode ser incluído no Ubuntu. naxsi
, antes de 15.04, era a variante do Naxsi especificamente com apenas o mínimo de módulos, pois o naxsi podia consumir bastante recursos.
Supostamente, de acordo com um dos mantenedores Debian do NGINX que está coordenando regularmente com o Upstream NGINX em uma conversa privada da qual atualmente não posso postar logs, o NGINX 2.x terá suporte a módulo carregável. Nesse caso, light
, full
, e extras
se tornará metapacotes que instam os pacotes individuais contendo cada módulo. A data em que isso acontece é desconhecida, no entanto, nem os módulos serão realmente capazes de fazer isso.
Atualmente, o nginx
pacote virtual foi projetado para instalar apenas uma das versões disponíveis. Por padrão, como nginx-core
é o principal e gostaríamos que os indivíduos o usassem mais, nginx-core
é o primeiro item visto e tentado instalar no pacote virtual. (No entanto, o nginx
pacote pode contar com qualquer um dos sabores de nginx
, e está principalmente lá para facilitar a instalação um pouco para aqueles que não precisam de nenhuma preferência de sabor específica)
Um detalhamento detalhado dos módulos específicos disponíveis em cada variante (com base no arquivo Vividdebian/control
e no arquivo Trustydebian/control
(como os pacotes Naxsi foram removidos no Vivid)) está disponível abaixo. Observe que isso não reflete as alterações mais atualizadas no Ubuntu, e você deve consultar as descrições dos pacotes para verificar se possui informações atualizadas e precisas :
nginx-core
é o único sabor na seção Principal dos repositórios do Ubuntu, a partir de 14.04, e existe apenas nos repositórios do Ubuntu (e não está nos PPAs ou no Debian, e nunca será incluído no Debian). É efetivamente idêntico ao nginx-full
sabor, mas não contém nenhum módulo de terceiros. O raciocínio por trás do usonginx-full
como base para essa variante, queremos fornecer um conjunto relativamente completo de módulos principais nos binários construídos, mantendo os módulos de terceiros ao mesmo tempo. Como tal, ele não contém nenhum dos módulos de terceiros, pois 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 muito variados, que não são tão bem suportados quanto os incluídos no nginx-tarball módulos (isso é discutido mais detalhadamente no bug de solicitação / relatório de inclusão principal , que contém os pontos de discussão e discussões de revisão adicionais sobre o que pode ser incluído no Ubuntu Main para nginx
). Uma lista completa dos módulos ativados aqui está na descrição do pacote, que eu indiquei aqui:
MÓDULOS HTTP PADRÃO: Núcleo, Acesso, Autenticação básica, Índice automático, Navegador, Conjunto de caracteres, GIF vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de limite, Zona de limite, Log, Mapa, Memcached, Proxy, Referer, Reescrever, SCGI , Split Clients, SSI, Upstream, ID do usuário, UWSGI.
MÓDULOS HTTP OPCIONAIS: Adição, Depuração, GeoIP, Pré-compressão Gzip, Sub HTTP, Filtro de Imagem, IPv6, IP Real, Spdy, SSL, Status de Stub, Substituição, WebDAV, XSLT.
MÓDULOS DE CORREIO: Núcleo de Correio, IMAP, POP3, SMTP, SSL.
nginx-light
é o sabor mais leve nginx
disponível. Está no repositório Universe e você deve habilitar o uso para usá-lo. Não permite uma grande quantidade de módulos disponíveis em -core
ou -full
. Ele 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, Conjunto de caracteres, GIF vazio, FastCGI, Gzip, Cabeçalhos, Índice, Log, Mapa, Proxy, Reescrever, Upstream.
MÓDULOS HTTP OPCIONAIS: solicitação de autenticação, depuração, pré-compactação Gzip, IPv6, IP real, SSL, status do stub.
MÓDULOS DE TERCEIROS: Eco.
nginx-full
é um dos sabores mais ricos em recursos do nginx
pacote. Como sua light
contraparte, está no repositório Universe. Ele permite a maioria dos módulos principais incluídos, que são padrão e opcionais no tarball de origem da-nginx, além de 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, Conjunto de caracteres, GIF vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de limite, Zona de limite, Log, Mapa, Memcached, Proxy, Referer, Reescrever, SCGI , Split Clients, SSI, Upstream, ID do usuário, UWSGI.
MÓDULOS HTTP OPCIONAIS: Adição, solicitação de autenticação, depuração, GeoIP, pré-compactação Gzip, sub HTTP, filtro de imagem, IPv6, IP real, Spdy, SSL, status de stub, substituição, WebDAV, XSLT.
MÓDULOS DE CORREIO: Núcleo de Correio, IMAP, POP3, SMTP, SSL.
MÓDULOS DE TERCEIROS: Auth PAM, DAV Ext, Echo, Filtro de Substituição HTTP, Fila Fair Upstream.
nginx-extras
é o sabor mais rico em recursos do nginx
pacote. E como seus full
e light
irmãos, ele também está no repositório Universe. Ele habilita todos os módulos, 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, Conjunto de caracteres, GIF vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de limite, Zona de limite, Log, Mapa, Memcached, Proxy, Referer, Reescrever, SCGI , Split Clients, SSI, Upstream, ID do usuário, UWSGI.
MÓDULOS HTTP OPCIONAIS: Adição, Solicitação de Autenticação, Depuração, Perl Incorporado, FLV, GeoIP, Pré-compressão Gzip, Filtro de Imagem, IPv6, MP4, Índice Aleatório, IP Real, IP Real, Link Seguro, Spdy, SSL, Status de Stub, Substituição, WebDAV, XSLT.
MÓDULOS DE CORREIO: Núcleo de Correio, IMAP, POP3, SMTP, SSL.
MÓDULOS DE TERCEIROS: Auth PAM, Chunkin, DAV Ext, Echo, Lua Incorporada, Índice de Fantasia, HttpHeadersMore, Filtro de Substituição de HTTP, http push, Nginx Development Kit, Upload Progress, Upstream Fair Queue Fair.
nginx-naxsi
é a variante do nginx que possui o módulo Naxsi Web Application Firewall disponível. Também está no Universe, no entanto, esse sabor não é mais suportado pelos mantenedores do Debian e será completamente removido do Ubuntu com a versão 15.04. Além do módulo Naxsi WAF, ele também inclui um conjunto de módulos muito mais leve que o 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, Conjunto de caracteres, Núcleo, GIF vazio, FastCGI, Geo, Gzip, Cabeçalhos, Índice, Solicitações de limite, Zona limite, Log, Mapa, Memcached, Proxy, Referenciador, Reescrever , Split Clients, SSI, Upstream, ID do usuário.
MÓDULOS HTTP OPCIONAIS: Depuração, IPv6, IP Real, SSL, Status do Stub.
MÓDULOS DE TERCEIROS: Naxsi, Cache Purge, Upstream Fair.
Uso de recursos entre os sabores
Embora eu não esteja ciente de quaisquer benchmarks executados nos vários tipos de nginx
, é tipicamente lógico supor que quanto mais habilitada por recurso nginx
você usa, mais recursos ele usaria.
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 em comparação com o Apache quando os módulos estão ativados. (A exceção a essa declaração é o naxsi
sabor. Esse sabor sempre consome muito mais recursos, pois é um firewall de aplicativos da Web e um servidor da web.)
Acrescentarei referências a esta resposta se as encontrar, mas, novamente, não conheço nenhuma referência existente para os vários sabores entre si. E mesmo que os sites que eu correr não tem tráfego pesado, eu não ter notado qualquer diminuição do desempenho real entre nginx-extras
, nginx-full
ou nginx-light
em um site orientado a PHP.