Após um ano de desenvolvimento novo ramo estável do servidor HTTP de alto desempenho e proxy multifuncional , que incorpora alterações acumuladas na ramificação principal 1.17.x. No futuro, todas as mudanças na ramificação estável 1.18 estarão relacionadas à correção de erros graves e vulnerabilidades. Em breve, será formada a ramificação principal nginx 1.19, onde o desenvolvimento de novos recursos continuará. Para usuários comuns, que não têm a tarefa de garantir compatibilidade com módulos de terceiros, usar o ramo principal, que, com base nele, lança versões do produto comercial Nginx Plus a cada três meses.
De acordo com a empresa Netcraft informa que nginx é utilizado em 19,56% de todos os sites ativos (compared to 20,73% há um ano, 21,02% há dois anos), o que representa a segunda posição em popularidade nessa categoria (a participação do Apache é de 27,64%, Google — 10,03%, Microsoft IIS — 4,77%). No entanto, ao considerar todos os sites, o nginx mantém a liderança e ocupa 36,91% do mercado (contra 27,52% há um ano), enquanto a participação do Apache é de 24,73%, Microsoft IIS — 12,85%, Google — 3,42%.
Entre os um milhão de sites mais visitados do mundo, a participação do nginx é de 25,54% (contra 26,22% há um ano, 23,76% há dois anos). Atualmente, aproximadamente 459 milhões de sites estão sob a gestão do nginx (397 milhões há um ano). De acordo com o W3Techs, o nginx é utilizado em 31,9% dos sites dos mil sites mais visitados; em abril do ano passado, essa porcentagem era de 41,8%, e há dois anos — 38% (a queda se deve à contagem separada do servidor http Cloudflare). A participação do Apache caiu de 43,6% para 38,9% em um ano, enquanto a do Microsoft IIS foi de 8,6% para 8,3%. Na Rússia, o nginx está presente em 78,9% dos sites mais visitados (contra 81% no ano passado).
As melhorias mais notáveis, adicionadas durante a formação da ramificação principal 1.17.x:
- Adicionada a diretiva , que ativa o modo de teste, no qual não são aplicadas limitações na intensidade do processamento de requisições (sem rate limit), mas continua a contagem do número de requisições que excedem os limites na memória compartilhada;
- Adicionada a diretiva , que coloca o módulo ngx_http_limit_conn_module em modo de teste, onde o número de conexões não é limitado, mas contabilizado;
- Adicionada a diretiva «», que permite adicionar um atraso a solicitações não autorizadas com código de resposta 401 para reduzir a intensidade de tentativas de força bruta e proteção contra , manipulando a medição do tempo de execução das operações (ataque de temporização) ao acessar sistemas cujo acesso é restrito , ou (JSON Web Token);
- Suporte adicionado a variáveis nas diretivas «limit_rate» e «limit_rate_after», assim como nas diretivas «proxy_upload_rate» e «proxy_download_rate» do módulo stream;
- Na diretiva Foi adicionada a compatibilidade com o uso de variáveis no parâmetro que define o endereço. Se o endereço for especificado como um nome de domínio, ele será pesquisado entre os grupos de servidores descritos e, se não encontrado, será determinado por meio do resolvedor;
- Novas variáveis foram adicionadas e , que contêm o endereço e a porta do servidor, obtidos do cabeçalho do protocolo PROXY;
- No módulo uma nova variável foi adicionada , que armazena o resultado da limitação do número de conexões: PASSED, REJECTED ou REJECTED_DRY_RUN;
- No módulo uma nova variável foi adicionada , que armazena o resultado da limitação da taxa de requisições: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN ou REJECTED_DRY_RUN;
- Por padrão, o módulo ;
- Adicionada a compatibilidade para alternar blocos nomeados “location” usando o método $r->internal_redirect(), fornecido pelo interpretador Perl embutido. Este método agora pressupõe o tratamento de URIs com caracteres escapados;
- Ao usar a diretiva «» no bloco de configurações «upstream» para fornecer balanceamento de carga com a vinculação do cliente ao servidor, agora, ao especificar um valor vazio para a chave, o modo de balanceamento uniforme (round-robin) será ativado;
- Suporte adicionado para chamar ioctl(FIONREAD), se disponível, para evitar a leitura de uma conexão rápida por longos períodos.
Fonte: opennet.ru
