Como ativar o HTTP/2 em Apache no Ubuntu

- 961
- 70
- Wendell Legros
Desde o início do Rede mundial de computadores (www), o Http O protocolo evoluiu ao longo dos anos para fornecer conteúdo digital seguro e rápido pela Internet.
A versão mais usada é Http 1.1 E enquanto ele pode fazer aprimoramentos de recursos e otimizações de desempenho para abordar as deficiências das versões anteriores, fica aquém de alguns outros recursos salientes que foram abordados pelo Http/2.
Quais são as limitações de http/1.1?
O Http/1.1 O protocolo está repleto de deficiências a seguir que o tornam menos ideal, especialmente ao executar servidores da Web de alto tráfego:
- Atrasos no carregamento de páginas da web devido a longos cabeçalhos HTTP.
- Http/1.1 só pode enviar uma solicitação para cada arquivo por conexão TCP.
- Dado que http/1.1 Processos Uma solicitação para cada conexão TCP, os navegadores são forçados a enviar um dilúvio de conexões paralelas de TCP para processar simultaneamente as solicitações. Isso leva ao congestionamento do TCP e, finalmente, desperdício de largura de banda e degradação da rede.
Os problemas acima mencionados geralmente levaram à degradação do desempenho e aos altos custos indiretos no uso da largura de banda. Http/2 entrou em cena para resolver esses problemas e agora é o futuro dos protocolos HTTP.
Vantagens de usar http/2
Oferece as seguintes vantagens:
- Compressão do cabeçalho que minimiza as solicitações do cliente e, assim, reduz o consumo de largura de banda. O efeito resultante é a velocidade de carga rápida.
- Multiplexando vários pedidos sobre uma conexão TCP. Tanto o servidor quanto o cliente podem dividir uma solicitação HTTP em vários quadros e reagrupar -os do outro lado.
- Performances da web mais rápidas que, consequentemente, levam a uma melhor classificação de SEO.
- Segurança aprimorada, pois a maioria dos navegadores convencionais carrega http/2 sobre https.
- HTTP/2 é considerado mais amigável para dispositivos móveis, graças ao recurso de compactação de cabeçalho.
Dito isto, vamos habilitar Http/2 sobre Apache sobre Ubuntu 20.04 LTS e Ubuntu 18.04 LTS.
Pré -requisitos:
Antes de começar, verifique se você habilita Https no servidor da web do Apache antes de ativar Http/2. Isso ocorre porque todos os principais navegadores da web suportam Http/2 sobre Https. Eu tenho um nome de domínio apontado para uma instância em Ubuntu 20.04 que está executando o servidor Apache protegido usando o certificado Let's Crypt.
Além disso, é recomendável que você tenha Apache 2.4.26 e versões posteriores para servidores de produção que pretendem mudar para Http/2.
Para verificar a versão de Apache Você está correndo, execute o comando:
$ apache2 -v

Da saída, você pode ver que estamos usando a versão mais recente, que é Apache 2.4.41 no momento de escrever este artigo.
Ativar http/2 em um host virtual Apache
Para começar, primeiro confirme que o servidor da web está executando Http/1.1. Você pode fazer isso em um navegador abrindo a seção Ferramentas do desenvolvedor sobre Google Chrome usando o Ctrl + Shift + i
combinação. Clique no 'Rede'guia e localize o'Protocolo'coluna.

Em seguida, habilite o Http/2 módulo on Ubuntu Ao executar o seguinte comando.
$ sudo a2enmod http2

Em seguida, localize e edite seu Ssl Arquivo de host virtual, se você ativou HTTPs usando Vamos criptografar, Um novo arquivo é criado com um le-ssl.conf sufixo.
$ sudo vim/etc/apache2/sites-inabled/your-domain-name-le-ssl.conf
Insira a diretiva abaixo após o marcação.
Protocolos H2 HTTP/1.1

Para salvar as mudanças, reinicie o servidor da web do Apache.
$ sudo systemctl reiniciar apache2
Para verificar se Http/2 está habilitado, busque os cabeçalhos HTTP usando o seguinte comando curl como show.
$ curl -i - -http2 -s https: // domínio.com/ | grep http

Você deve obter a saída mostrada.
Http/2 200
No navegador, recarregue seu site. Em seguida, volte para as ferramentas do desenvolvedor e confirme o http/2 indicado pelo H2
etiqueta no 'Protocolo'coluna.

Ao usar o módulo MOD_PHP com Apache
Se você estiver correndo Apache ao lado do mod_php módulo, você precisa mudar para PHP-FPM. Isso é porque o mod_php módulo usa a pré -remarcada Mpm módulo que não é suportado por Http/2. Você precisa desinstalar a pré -coisa Mpm e mudar para o mpm_event módulo que será suportado por Http/2.
Se você estiver usando o Php 7.4 mod_php módulo, por exemplo, desative -o como mostrado:
$ sudo a2dismod php7.4

Depois disso, desative a pré -referência Mpm módulo.
$ sudo a2dismod mpm_prefork

Depois de desativar os módulos, a seguir, ative o Evento MPM, Fast_cgi, e setenvif módulos como mostrado.
$ sudo a2enmod mpm_event proxy_fcgi setenvif

Instale o PHP-FPM no Ubuntu
Em seguida, instale e inicie PHP-FPM como mostrado.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Então habilite PHP-FPM Para começar na hora da inicialização.
$ sudo systemctl Ativar php7.4-fpm
Em seguida, ativar PHP-FPM como manipulador de php da Apache e reinicie o servidor da web do Apache para que as alterações sejam efetuadas.
$ sudo a2enconf php7.4-fpm
Ativar suporte http/2 no apache ubuntu
Em seguida, ative o módulo HTTP/2 como antes.
$ sudo a2enmod http2
Reinicie o Apache para sincronizar todas as mudanças.
$ sudo systemctl reiniciar apache2
Por fim, você pode testar se o seu servidor está usando o Http/2 protocolo usando o comando curl como mostrado.
$ curl -i - -http2 -s https: // domínio.com/ | grep http

Você também pode optar por usar as ferramentas do desenvolvedor no Google Chrome navegador para verificar como documentado anterior. Temos até o final deste guia, esperamos que você tenha encontrado as informações valiosas e que você possa ativar confortavelmente Http/2 sobre Apache com facilidade.