Como ativar HTTP/2.0 em nginx

Como ativar HTTP/2.0 em nginx

Http/2 é o padrão mais recente para o Http protocolo, é o sucessor de Http/1.1. Está se tornando cada vez mais popular devido aos benefícios que traz para desenvolvedores e usuários da web em geral. Ele fornece um transporte otimizado para a semântica HTTP, apoiando todos os principais recursos de Http/1.1 mas pretende ser mais eficiente de várias maneiras.

Existem muitos recursos em cima de Http/2 Isso oferece mais possibilidades para otimizar um site/aplicativo. Oferece verdadeira multiplexação e simultaneidade, melhor compactação de cabeçalho (codificação binária), melhor priorização, melhores mecanismos de controle de fluxo e um novo modo de interação chamado “Push de servidor”Isso permite que um servidor empurre respostas a um cliente. Para não mencionar, Http/2 é baseado no experimental do Google Spdy protocolo.

Portanto, o foco principal de Http/2 é reduzir o tempo geral de carregamento da página da web, melhorando o desempenho. Ele também se concentra no uso de recursos de rede e servidor, bem como segurança porque, com Http/2, SSL/TLS A criptografia é obrigatória.

Neste artigo, você aprenderá como habilitar Nginx com Http/2 Suporte em servidores Linux.

Pré -requisitos:

  • Uma instalação funcional de Nginx versão 1.9.5 ou superior, construído com o ngx_http_v2_module módulo.
  • Certifique-se de que seu site use o certificado SSL/TLS, se você não tiver um, você pode obter de Let's Crypt ou usar um certificado autoassinado.

Você pode instalar Nginx ou implantá -lo com um Lemp Pilha conforme descrito nos seguintes guias:

  • Como instalar o nginx no CentOS 8
  • Como instalar o servidor Lemp no CentOS 8
  • Como instalar o nginx, mysql/mariadb e php no rhel 8
  • Como instalar pilha Lemp com phpmyadmin no Ubuntu 20.04
  • Instale o nginx com blocos de servidor (hosts virtuais) no Debian 10
  • Como usar o nginx como um balanceador de carga HTTP no Linux

Como ativar HTTP/2.0 em nginx

Se você tem o Nginx instalado, verifique se foi construído com o ngx_http_v2_module módulo executando o seguinte comando.

# strings/usr/sbin/nginx | grep _module | Grep -v Configurar | classificar | Grep ngx_http_v2_module 
Verifique o módulo nginx http/2

Depois de ter um site/aplicativo sendo servido por Nginx com Https Configurado, abra o bloco de servidor virtual de seus sites (ou host virtual) Arquivo para edição.

# vi/etc/nginx/conf.d/exemplo.com.conf [no CENTOS/RHEL] $ sudo nano/etc/nginx/sites-averable/exemplo.com.conf [no ubuntu/debian] 

Você pode ativar o suporte HTTP/2 simplesmente adicionando o http2 parâmetro para todos ouvir diretivas como mostrado na captura de tela a seguir.

Ouça 443 SSL http2; 

A configuração do bloco de servidor de amostra se parece abaixo.

Exemplo de servidor server_name.com www.exemplo.com; access_log/var/log/nginx/exemplo.com_access.registro; error_log/var/log/nginx/exemplo.com_error.registro; Ouça [::]: 443 ssl ipv6only = on http2; # gerenciado por certbot ouça 443 SSL http2; # gerenciado por certbot ssl_certificate/etc/letSencrypt/vive/exemplo.com/fullchain.PEM; # gerenciado por certbot ssl_certificate_key/etc/letsencrypt/vive/exemplo.com/privky.PEM; # gerenciado pelo certbot incluir/etc/letsencrypt/options-ssl-nginx.conf; # gerenciado por certbot ssl_dhparam/etc/letsencrypt/ssl-dhparams.PEM; # gerenciado por certbot 
Ativar suporte http/2 no nginx

Salve as mudanças no arquivo e feche -o.

Em seguida, verifique a sintaxe da configuração do Nginx, se estiver ok, reinicie o serviço Nginx.

# nginx -t # systemctl reinicie nginx 

Em seguida, abra um navegador da web para verificar se seu site está sendo servido Http/2.

http: // www.exemplo.com 

Para acessar os cabeçalhos HTTP, clique com o botão direito do mouse na página da web exibida, selecione Inspecionar da lista de opções para abrir as ferramentas do desenvolvedor e clique no Rede guia e recarregue a página.

Verifique abaixo Protocolos Para ver o que seu site está usando (se você não vê o cabeçalho dos protocolos, clique com o botão direito do mouse em nenhum dos cabeçalhos e.g Nome, Em seguida, verifique Protocolo da lista para exibi -lo como um cabeçalho).

Se o seu site estiver funcionando Http/1.1, sob Protocolo, você verá http/1.1 como mostrado na captura de tela a seguir.

Site em execução no http/1.1

Se estiver funcionando Http/2, sob Protocolo, você verá H2 como mostrado na captura de tela a seguir. Você pode desativar o cache do navegador para visualizar o conteúdo mais recente que está sendo servido diretamente do servidor da web.

Site em execução no HTTP/2.0

Isso é tudo! Para mais informações, consulte o NGX_HTTP_V2_MODULE Documentação do módulo. Não hesite em fazer perguntas através do formulário de feedback abaixo.