Após um ano de desenvolvimento novo ramo estável do servidor HTTP de alto desempenho e proxy multifuncional , que incorporou as alterações acumuladas no ramo principal 1.15.x. No futuro, todas as alterações no ramo estável 1.16 estarão relacionadas à correção de erros graves e vulnerabilidades. Em breve, será criada a versão principal do nginx 1.17, na qual o desenvolvimento de novas funcionalidades continuará. Para usuários comuns, que não têm a tarefa de garantir a 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.
As melhorias mais notáveis adicionadas no processo de formação do ramo principal 1.15.x:
- Adicionada a possibilidade de usar variáveis nas diretivas ‘‘ e ‘‘, que podem ser usadas para carregar dinamicamente certificados;
- Adicionada a possibilidade de carregar certificados SSL e chaves secretas a partir de variáveis sem usar arquivos intermediários;
- No bloco ‘‘, foi implementada uma nova diretiva ‘‘, com a qual é possível organizar o balanceamento de carga com escolha aleatória do servidor para redirecionar a conexão;
- No módulo foi implementada a variável ,
que define a maior versão do protocolo SSL/TLS que o cliente suporta. A variável permite para acesso utilizando diversos protocolos com e sem SSL através de uma única porta de rede ao proxy de tráfego usando módulos http e stream. Por exemplo, para organização de acesso via SSH e HTTPS através de uma única porta, a porta 443 por padrão pode ser redirecionada para SSH, mas se uma versão SSL for definida, redirecionar para HTTPS. - No módulo upstream, foi adicionada uma nova variável ‘‘, que exibe o número de bytes enviados ao servidor do grupo;
- No módulo dentro de uma sessão, foi adicionada a possibilidade de processar várias datagramas UDP de entrada do cliente;
- No módulo stream, foi adicionada a diretiva ‘«, que define o número de datagramas recebidos do cliente, ao atingir o qual a associação entre o cliente e a sessão UDP existente é removida. Após receber o número especificado de datagramas, o próximo datagrama recebido do mesmo cliente inicia uma nova sessão;
- Na diretiva listen, foi adicionada a possibilidade de especificar faixas de portas;
- Adicionada a diretiva «» para habilitar o modo , ao usar TLSv1.3, que permite manter os parâmetros de conexão TLS previamente acordados e reduzir para 2 o número de RTT ao reiniciar uma conexão anteriormente estabelecida;
- Para configurar o keepalive para conexões de saída (ligar ou desligar a opção SO_KEEPALIVE para soquetes), foram adicionadas novas diretivas:
- «» — configura o comportamento de «TCP keepalive» para conexões de saída ao servidor proxy;
- «» — configura o comportamento de «TCP keepalive» para conexões de saída ao servidor FastCGI;
- «» — configura o comportamento de «TCP keepalive» para conexões de saída ao servidor gRPC;
- «» — configura o comportamento de «TCP keepalive» para conexões de saída ao servidor memcached;
- «» — configura o comportamento de «TCP keepalive» para conexões de saída ao servidor SCGI;
- «» — configura o comportamento de «TCP keepalive» para conexões de saída ao servidor uwsgi.
- Na diretiva « » foi adicionado um novo parâmetro «delay», que define o limite, ao atingir o qual as solicitações excessivas são atrasadas;
- No bloco «upstream», foram adicionadas novas diretivas «keepalive_timeout» e «keepalive_requests» para definir limites para Keepalive;
- A diretiva «ssl» foi declarada obsoleta, sendo substituída pelo parâmetro «ssl» na diretiva «listen». A verificação de certificados SSL ausentes agora ocorre na fase de teste de configuração ao usar a diretiva «listen» com o parâmetro «ssl»;
- Ao usar a diretiva reset_timedout_connection, ao expirar o timeout da conexão, ela agora é fechada com o código 444;
- Erros SSL «http request», «https proxy request», «unsupported protocol» e «version too low» agora são registrados no log com nível «info» em vez de «crit»;
- Suporte adicionado ao método poll em sistemas Windows ao usar Windows Vista e superior;
- Possibilidade de usar ao compilar com a biblioteca BoringSSL, em vez de apenas com OpenSSL.
Fonte: opennet.ru
