Nginx
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.
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] (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 |
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
editarSegundo 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
- ↑ «Release 1.27.2». 2 outubro 2024. Consultado em 22 outubro 2024
- ↑ «Languages». Black Duck Open Hub. Consultado em 14 de outubro de 2019
- ↑ 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
- ↑ «HTTPS - Wikitech»
- ↑ «OpenBSD Upgrade Guide: 5.1 to 5.2». www.openbsd.org. Consultado em 21 de julho de 2016
- ↑ «Heads Up: Nginx Removed From Base». undeadly.org. Consultado em 21 de julho de 2016
- ↑ «October 2015 Web Server Survey | Netcraft». news.netcraft.com. Consultado em 21 de julho de 2016
- ↑ «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
- ↑ «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- «Página oficial» (em russo)
- «Sítio oficial» (em inglês)
- «Wiki Nginx» (em inglês)
- «Fórum Nginx» (em inglês)