nginx
no Ubuntu é um pacote virtual fornecido por um dos cinco pacotes dos repositórios oficiais (pelo menos a partir de 14.04, por padrão nginx-core
, 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?
Este pouco velho página Debian Wiki tem uma comparação de recursos entre extras
, full
, light
e naxsi
, mas nenhuma menção é feita de core
. Quanto disso mudou em 14.04?
secundário
Pelo que entendi, nginx
não suporta a habilitação de tempo de execução de módulos como o Apache, por isso a instalação afetaria o nginx-extras
desempenho?
Respostas:
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 (paranginx-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
, eextras
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, comonginx-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, onginx
pacote pode contar com qualquer um dos sabores denginx
, 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 Vivid
debian/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 aonginx-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 paranginx
). Uma lista completa dos módulos ativados aqui está na descrição do pacote, que eu indiquei aqui:nginx-light
é o sabor mais levenginx
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:nginx-full
é um dos sabores mais ricos em recursos donginx
pacote. Como sualight
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:nginx-extras
é o sabor mais rico em recursos donginx
pacote. E como seusfull
elight
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: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 onginx-full
. A lista completa de módulos está abaixo: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 recursonginx
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 é onaxsi
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
ounginx-light
em um site orientado a PHP.fonte
error.log
depois que eu instaladonginx-extra
:[info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf
. É compartilhado e não RSS, mas ainda me fez pensar. Portanto, o desempenho duvida, mas isso é secundário.push
módulo é bem conhecido por usar um bom bocado de memória compartilhada. Que eu saiba (e posso estar um pouco errado nisso), essa memória compartilhada é usada em todos os sites no servidor web em que o módulo push pode ser usado. No entanto, esse módulo é um módulo de terceiros, portanto, quaisquer problemas reais com ele devem ser direcionados aos mantenedores :)backports
? E, como presume-se que eles sejam criados a partir da mesma fonte, um patch aplicado pela equipe de Segurançanginx-core
também estaria disponível-full
e-extra
, certo?nginx-core
a outros tipos denginx
disponibilidade disponíveis nesse repositório, pois todos eles se baseiam na mesma base de código. Eles apenas têm./configure
linhas diferentes para ativar ou desativar módulos diferentes.Aqui está uma avaliação de alto nível, baseada principalmente nas descrições dos pacotes . (Não vou fornecer exemplos de casos de uso para cada um, mas achei isso muito satisfatório para minha curiosidade, para que eu também possa contribuir.)
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, mais a configuração reforçada "Nginx Anti Xss & Sql Injection" e seus plugins necessários.
nginx-core: "versão principal"
A implantação padrão do nginx, 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 do mantenedor (antigo e agora extinto) ou na cópia da postagem antiga no blog não oficial do mantenedor :
nginx-full: "versão padrão"
A implantação padrão do nginx, incluindo módulos de terceiros usados com freqüência.
nginx-extras: "versão estendida"
A implantação padrão do nginx, além de vários módulos largish e pouco usados.
fonte
nginx
não suporta a ativação de módulos como o Apache, por isso a instalaçãonginx-extras
poderia afetar o desempenho?