Nginx (lê-se "engine x") é um servidor leve de HTTP, proxy reverso, proxy de e-mail IMAP/POP3, feito por Igor Sysoev em 2005, sob licença BSD-like 2-clause.

Nginx
Captura de tela
Nginx
Logotipo do Nginx
Desenvolvedor Igor Sysoev
Plataforma Multi plataforma
Modelo do desenvolvimento Software livre
Lançamento 4 de outubro de 2004 (20 anos)
Versão estável 1.27.2[1]Edit this on Wikidata (2 outubro 2024)
Mercado-alvo Servidores
Escrito em C, Perl, XML[2]
Sistema operacional BSD, HP-UX, IBM AIX, Linux, macOS, Solaris, Windows, e outros tipo Unix
Gênero(s) Servidor HTTP e IMAP/POP3
Licença BSD
Estado do desenvolvimento Ativo
Tamanho 1 MB (tarball do fonte)
Página oficial nginx.org

O Nginx consome menos memória que o Apache, pois lida com requisições Web do tipo “event-based web server”; e o Apache é baseado no “process-based server”, podendo trabalhar juntos. É possível diminuir o consumo de memória do Apache, passando as requisições Web primeiro no Nginx, assim, o Apache não precisa servir arquivos estáticos, e pode depender do bom controle de cache feito pelo Nginx.[3]

O Wikipedia utiliza Nginx como um servidor de terminação SSL, o qual é responsável por receber requisições TLS, e repassar para outros servidores na rede, diminuído assim a carga sobre outros servidores.[4]

Desde a versão 5.2, o sistema operacional OpenBSD utiliza o Nginx como parte do sistema base, provendo uma alternativa ao fork do Apache 1.3 que o sistema utilizava, o qual o Nginx tinha como finalidade substituir[5], mas que acabou sendo subtituido por uma implementação própria de httpd[6].

Adoção de Nginx

editar

Segundo pesquisa sobre servidores web (Web Server Survey), da Netcraft em outubro de 2015[7], o servidor Nginx se mostrou o segundo servidor web mais utilizado entre os sites ativos na web pesquisados, sendo utilizado por 15,33% destes. A pesquisa também indicou que o servidor é o mais utilizado entre os sites mais acessados da rede, com 23.66% dos sites utilizando a plataforma como base. De acordo com W3Techs, o servidor é utilizado por 29.7% dos sites no top 1 milhão de sites mais acessados da web, 39.5% dos sites no top 100 mil e por 47,6% dos sites no top 10 mil.

Em fevereiro de 2017, a adoção de Nginx foi: Brasil: 17,41% de todos os domínios[8]. Portugal: 17,62% de todos os domínios[9].

Características básicas

editar
  • Manipulação de arquivos estáticos, auto-indexação de arquivos; cache de descritor de arquivo aberto;
  • Proxy reverso acelerado com cache, balanceamento de carga simples e tolerância a falhas;
  • Suporte acelerado com cache a: FastCGI, uWSGI, SCGI e servidores memcached; balanceamento de carga simples e tolerância a falhas;
  • Arquitetura modular. Filtros incluem gzipping , intervalos de bytes, respostas fragmentadas, XSLT , SSI e transformação da imagem de filtro. Inclusões múltiplas SSI dentro de uma página única podem ser processadas ​​em paralelo se forem manuseadas pelos servidores de proxy ou FastCGI;
  • SSL e TLS apoio SNI.

Outros recursos

editar
  • Servidores virtuais baseados em nome e baseados em IP;
  • Conexões keep-alive e suporte a pipeline;
  • Configuração flexível;
  • Reconfiguração e atualização de um executável sem interrupção do serviço ao cliente;
  • Acesso a formatos de log, buffer de escrita de log e de rotação rápida de registro;
  • 3xx-5xx códigos de erro de redirecionamento;
  • Módulo de reescrita: mudança URI usando expressões regulares;
  • Execução de diferentes funções, dependendo do endereço do cliente;
  • Controle de acesso baseado em endereço IP do cliente e autenticação HTTP Basic;
  • Referenciador de validação de HTTP;
  • Métodos PUT, DELETE, MKCOL, COPY e MOVE;
  • Streaming de FLV e MP4;
  • Limitação de taxa de resposta;
  • Limitação do número conexões ou pedidos simultâneas provenientes de um endereço;
  • Perl incorporado.

Recurso de correio

editar
  • Redirecionamento do usuário para servidor IMAP ou POP3 usando um HTTP externo de autenticação do servidor;
  • Autenticação do usuário usando um HTTP externo de autenticação do servidor e redirecionamento de ligação a um servidor SMTP interno;
  • Métodos de autenticação:

POP3: USER / PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5; IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5; SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;

  • Suporte a SSL;
  • Suporte a STARTTLS e STLS.

Arquitetura e escalabilidade

editar
  • Um mestre e vários processos de trabalho; executados sob um usuário sem privilégios;
  • Suporte para kqueue (FreeBSD 4.1 +), epoll (Linux 2.6 +), rt sinais (Linux 2.2.19 +), / dev / poll (Solaris 7 11/99 +), portas de evento (Solaris 10), selecionar e pesquisa;
  • Suporte a kqueue EV_CLEAR, EV_DISABLE (desativa temporariamente eventos), NOTE_LOWAT, EV_EOF, número de dados disponíveis, códigos de erro;
  • sendfile (FreeBSD 3.1 +, Linux 2.2 +, Mac OS X 10.5 +), sendfile64 (Linux 2.4.21 +), e sendfilev (Solaris 8 7/01 +) de apoio;
  • Arquivo AIO (FreeBSD 4.3 +, Linux 2.6.22 +);
  • DIRECTIO (FreeBSD 4.4 +, Linux 2.4 +, Solaris 2.6 +, Mac OS X);
  • Accept-filtros (FreeBSD 4.1 +, NetBSD 5.0 +) e TCP_DEFER_ACCEPT (Linux 2.4 +) apoio;
  • Keep-alive para dez mil conexões HTTP inativas demandam cerca de 2,5 MB de memória;
  • Operações de cópia de dados são mantidos a um mínimo.

Referências

  1. «Release 1.27.2». 2 outubro 2024. Consultado em 22 outubro 2024 
  2. «Languages». Black Duck Open Hub. Consultado em 14 de outubro de 2019 
  3. Klaus Peter Laube. «Nginx: Poderoso, rápido e fácil». Consultado em 14 de outubro de 2019. Cópia arquivada em 26 de dezembro de 2018 
  4. «HTTPS - Wikitech» 
  5. «OpenBSD Upgrade Guide: 5.1 to 5.2». www.openbsd.org. Consultado em 21 de julho de 2016 
  6. «Heads Up: Nginx Removed From Base». undeadly.org. Consultado em 21 de julho de 2016 
  7. «October 2015 Web Server Survey | Netcraft». news.netcraft.com. Consultado em 21 de julho de 2016 
  8. «Estatísticas de internet brasileira brasdo.com». www.brasdo.com. Consultado em 20 de fevereiro de 2017. Arquivado do original em 14 de fevereiro de 2017 
  9. «Estatísticas de internet portuguesa siteo.pt». www.siteo.pt. Consultado em 20 de fevereiro de 2017. Arquivado do original em 14 de fevereiro de 2017 

Ligações externas

editar
  Este artigo sobre software é um esboço. Você pode ajudar a Wikipédia expandindo-o.