NGINX

NGINX

Em formação
O Criador Igor Sysoev e Maxim Konovalov ( d )
Desenvolvido por NGINX, Inc. ( en ) e Igor Sysoev
Primeira versão 4 de outubro de 2004
Última versão 1.21.0 (25 de maio de 2021)
Versão avançada 1.19.1 (7 de julho de 2020)
1.19.2 (11 de agosto de 2020)
1.19.0 (26 de maio de 2020)
1.19.3 (29 de setembro de 2020)
1.19.4 (28 de outubro de 2020)
1.19.5 (24 de novembro de 2020)
1.19.6 (15 de dezembro de 2020)
1,19,7 (16 de fevereiro de 2021)
1,19,8 (9 de março de 2021)
1,19,9 (30 de março de 2021)
Depósito hg.nginx.org/nginx e github.com/nginx/nginx
Escrito em VS
Sistema operacional Digite Unix e Microsoft Windows
Formatos de leitura Certificado codificado PEM ( d ) , chave privada RSA codificada PEM ( d ) e sites Nginx disponíveis ( d )
Modelo Agente de servidor web
Política de distribuição software grátis
Licença BSD 2 cláusulas ( d )
Local na rede Internet nginx.org

NGINX open source ou NGINX (pronuncia-se [ˌɛndʒɪnɛks] e também escrito Nginx ou nginx ) é um software livre para servidor da Web (ou HTTP ) e um proxy reverso escrito por Igor Sysoev , cujo desenvolvimento começou em 2002 para fins de 'um site russo com muito tráfego ( Rambler ). A documentação está disponível em vários idiomas. Tem sido desdeabril de 2019, o servidor web mais usado no mundo pela Netcraft , ou o segundo servidor mais usado pela W3techs.

NGINX Inc foi adquirida pela F5 Networks em11 de março de 2019, por $ 670 milhões.

Suas fontes estão disponíveis sob uma licença do tipo BSD .

Particularidades

Servidor assíncrono

NGINX é um sistema assíncrono em oposição a servidores síncronos, onde cada solicitação é tratada por um processo dedicado. Em vez de explorar uma arquitetura paralela e multiplexação por divisão de tempo de tarefas pelo sistema operacional, o NGINX usa mudanças de estado para gerenciar várias conexões ao mesmo tempo; o processamento de cada solicitação é dividido em várias mini-tarefas e, assim, é possível obter uma multiplexação eficiente entre as conexões. Para aproveitar as vantagens dos computadores com multiprocessadores, vários processos podem ser iniciados. Essa escolha de arquitetura leva a um desempenho muito alto, bem como a uma carga e consumo de memória muito mais baixos do que os servidores HTTP convencionais, como o Apache .

Modularidade

NGINX é muito modular: um kernel mínimo e muitos módulos, complementando as funções básicas. Cada módulo pode atuar como um filtro na entrada, saída ou conteúdo intermediário (proxy) por meio de vários callbacks . Assim, a título de exemplo, o conteúdo dinâmico pode ser compactado em tempo real pelo módulo   “ gzip ” antes do envio.

Esses módulos são vinculados ao servidor durante a compilação. NGINX não oferece suporte a bibliotecas dinâmicas compartilhadas. A Tengine , a bifurcação NGINX do Taobao, adicionou esse recurso, que não foi transportado para a NGINX.

Otimizações

O kernel depende de estruturas de dados mínimas, mas ideais, destinadas a reduzir o número de chamadas do sistema, especialmente para tudo o que tem a ver com alocação de memória. Diferentes mecanismos de sinalização podem ser usados ​​para obter o máximo do sistema operacional (por exemplo: epoll no Linux e kqueue no BSD ). A arquitetura assíncrona alivia o escalonador do sistema operacional e promove o uso de caches ou processador (es).

Vários

Um processo mestre controla o processo ou processos do servidor. Isso permite alterações de configuração ou atualização do arquivo executável do servidor sem interromper o serviço HTTP.

Plataformas suportadas

NGINX é executado em sistemas operacionais GNU / Linux , BSD , Mac OS X e Solaris  ; A partir da versão avançada 0.7.52, o NGINX também está disponível para Microsoft Windows .

Usos

Além de ser um servidor HTTP, o NGINX pode ser configurado para ser um proxy reverso (em inglês  : proxy reverso ) Web e servidor proxy de e-mail ( IMAP / POP3 ). O uso mais frequente do NGINX é configurá-lo como um servidor da web clássico para servir arquivos estáticos e como um proxy para solicitações dinâmicas normalmente roteadas usando uma interface FastCGI para um ou mais servidores de aplicativos com um mecanismo de balanceamento de carga .

O NGINX também é capaz de transmitir, no mesmo princípio que lighttpd com mod_flv_streaming , conteúdo de vídeo no modo de streaming ( streaming) para um Flash player sem ter que recorrer ao Flash Media Server. Para isso, possui um http_glv_module opcional para streaming de arquivo de vídeo flv e vários módulos de streaming que podem transmitir vídeo codificado em H.264 . Ele também permite que você transmita em mp4 graças ao seu módulo opcional http_mp4_module .

Ele também é amplamente utilizado na produção para atender a aplicativos Ruby on Rails, graças ao módulo Phusion Passenger . A maioria dos sites Ruby on Rails com alto tráfego usa NGINX (por exemplo, basecamp ou LinuxFr.org ).

Popularidade

O NGINX era pouco conhecido, exceto na Rússia , antes de Aleksandar Lazic iniciar a tradução para o inglês em 2006.

Notas e referências

  1. "  http://nginx.org/ru/CHANGES.ru  "
  2. Versão 1.21.0  " ,25 de maio de 2021(acessado em 21 de junho de 2021 )
  3. "  https://nginx.org/en/CHANGES  " (acessado em 8 de julho de 2020 )
  4. Versão 1.19.1  " ,7 de julho de 2020(acessado em 22 de agosto de 2020 )
  5. "  https://nginx.org/en/CHANGES  " (acessado em 16 de agosto de 2020 )
  6. Versão 1.19.2  " ,11 de agosto de 2020(acessado em 22 de agosto de 2020 )
  7. Versão 1.19.0  " ,26 de maio de 2020(acessado em 22 de agosto de 2020 )
  8. Versão 1.19.3  " ,29 de setembro de 2020(acessado em 21 de outubro de 2020 )
  9. Versão 1.19.4  " ,27 de setembro de 2020(acessado em 10 de novembro de 2020 )
  10. Versão 1.19.5  " ,24 de novembro de 2020(acessado em 20 de dezembro de 2020 )
  11. Versão 1.19.6  " ,15 de dezembro de 2020(acessado em 20 de dezembro de 2020 )
  12. Versão 1.19.7  " ,16 de fevereiro de 2021(acessado em 18 de fevereiro de 2021 )
  13. release-1.19.8  " (acessado em 11 de março de 2021 )
  14. release-1.19.9  " (acessado em 9 de abril de 2021 )
  15. (en-US) “  NGINX | Balanceador de carga de alto desempenho, servidor da Web e proxy reverso  ” , no NGINX (acessado em 28 de setembro de 2018 )
  16. (en) "  Pesquisa de servidor da Web de abril de 2019  " , na Netcraft ,22 de abril de 2019
  17. "  Estatísticas de uso e participação no mercado de servidores da web, março de 2020  " , em w3techs.com (acessado em 4 de março de 2020 )
  18. (em) "  Dynamic Module Loading Support (DSO)  " , tengine.taobao.org (acessado em 20 de agosto de 2014 )
  19. Arquitetura da LinuxFr.org , em vigor desde fevereiro de 2011
  20. (em) "  Software e malware de servidor da web  " em Googleonlinesecurity.blogspot.com ,5 de junho de 2007
  21. (em) "  Pesquisa de servidor da Web de dezembro de 2008  " na Netcraft
  22. (em) "  Pesquisa de servidor da Web de março de 2009  " na Netcraft ,15 de março de 2009
  23. (em) "  Pesquisa de servidor da Web de novembro de 2010  " na Netcraft ,5 de novembro de 2010
  24. (em) "  Pesquisa de servidor da Web de julho de 2011  " na Netcraft ,8 de julho de 2011
  25. (em) "  O servidor da web russo de alto escalão, Nginx, levanta $ 3 milhões de fundos russos e internacionais  " , no East-West Digital News ,13 de outubro de 2011(acessado em 29 de setembro de 2019 )
  26. (em) "  Pesquisa de servidor da Web de janeiro de 2012  " na Netcraft ,3 de junho de 2012
  27. (em) "  Pesquisa de servidor da Web de abril de 2013  " na Netcraft ,2 de abril de 2013
  28. (em) "  Pesquisa de servidor da Web de maio de 2015  " na Netcraft ,19 de maio de 2015
  29. (em) "  Pesquisa de servidor da Web de abril de 2016  " na Netcraft ,21 de abril de 2016
  30. (em) "  Pesquisa de servidor da Web de dezembro de 2018  " na Netcraft ,17 de dezembro de 2018

Veja também

links externos