Instalar o Apache com mod_http2 no CentOS 8

O CentOS 8 foi lançado recentemente, e este sistema já trás o Apache 2.4.33 que entre muitas outras coisas já suporta o HTTP2.

Neste artigo vou descrever os passos necessários para instalar e configurar o Apache para que possa servir paginas web através do novo protocolo HTTP2.

Ativar o HTTP2

No CentOS 8 o nome do pacote para a Apache é chamado de “httpd”. Para que possamos instalar o Apache bem como os utilitários necessários, instalamos o grupo de pacotes @httpd.

# yum install @httpd
Última verificação de expiração de metadados: 0:00:20 em sex 04 out 2019 11:26:58 EDT.
Dependências resolvidas.
=============================================================================================================================================================================
 Pacote                                   Arq.                         Versão                                                          Repositório                     Tamanho
=============================================================================================================================================================================
Installing group/module packages:
 httpd                                    x86_64                       2.4.37-11.module_el8.0.0+172+85fc1f40                           AppStream                       1.7 M
 httpd-filesystem                         noarch                       2.4.37-11.module_el8.0.0+172+85fc1f40                           AppStream                        34 k
 httpd-tools                              x86_64                       2.4.37-11.module_el8.0.0+172+85fc1f40                           AppStream                       102 k
 mod_http2                                x86_64                       1.11.3-2.module_el8.0.0+10+abf51267                             AppStream                       156 k
 mod_ssl                                  x86_64                       1:2.4.37-11.module_el8.0.0+172+85fc1f40                         AppStream                       129 k
A instalar dependências:
 apr                                      x86_64                       1.6.3-9.el8                                                     AppStream                       125 k
 apr-util                                 x86_64  mod_ssl &                     1.6.1-6.el8                                                     AppStream                       105 k
 centos-logos-httpd                       noarch                       80.5-2.el8                                                      AppStream                        24 k
Installing weak dependencies:
 apr-util-bdb                             x86_64                       1.6.1-6.el8                                                     AppStream                        25 k
 apr-util-openssl                         x86_64                       1.6.1-6.el8                                                     AppStream                        27 k
Installing module profiles:
 httpd/common                                                                                                                                                               
Enabling module streams:
 httpd                                                                 2.4                                                                                                  

Resumo da Transação
=============================================================================================================================================================================
Instalar  10 Pacotes

Total transferido: 2.4 M
Tamanho instalado: 6.3 M
Isto está ok [s/N]: y

Ao aceitarmos a instalação os seguintes pacotes de software serão instalados:

  • httpd: O Apache Server.
  • httpd-filesystem: Este pacote cria a estrutura básica de diretórios necessários já com as devidas permisões.
  • httpd-tools: Este pacote contem alguns utilitários como o “htpasswd” , que podem ser usados para administrar o apache.
  • mod_http2: Este pacote instala o modulo HTTP2 que é o foco deste artigo.
  • mod_ssl: Este modulo permite que o Apache use criptografia para servir as paginas web através de https. Este modulo é necessário quando usamos http2.
  • E as outras dependências.

Inicializar o Apache a cada boot do sistema

O apache está instalado, no entanto não está a correr nem irá correr cada vez que iniciamos o CentOS.

Para que seja possível que ele corra a cada boot temos de informar o systemd que queremos que assim seja. Para isso corremos o seguinte comando:

# systemctl enable --now httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Desta forma o Apache irá iniciar automaticamente a cada boot do sistema.

Para que ele corra neste momento sem reiniciar o sistema, corremos o seguinte comando:

# systemctl start httpd.service

Neste momento já temos Apache configuradoe correr.

Configurar a Firewall

Apesar de o Apache estar a correr não temos acesso ao serviço neste momento. Para que tenhamos acesso acesso temos de configurar a firewall para que permita acesso a este serviço através do exterior. Para o fazermos utilizamos o seguinte comandos:

# firewall-cmd --add-service={http,https} --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-services
cockpit dhcpv6-client http https ssh

Neste momento já temos acesso ao serviço através do nosso browser.

Ativar o HTTP2

Para que possamos usar o protocolo HTTP2 para servir as nossas paginas web temos de fazer mais uma configuração.

Podemos fazer esta configuração de várias formas. Eu escolhi criar um ficheiro de configuração para o efeito.

Neste ficheiro adicionamos os protocolos que pretendemos usar.

Para criar o ficheiro já com a configuração necessário, corremos o seguinte comando:

echo "Protocols h2 h2c http/1.1" > /etc/httpd/conf.d/protocols.conf

Neste momento já temos o protocolo HTTP2 configurado. Para testarmos temos de reiniciar o Apache para que ele use a nova configuração. Para isso corremos o seguinte comando:

# systemctl restart httpd.service

Neste momento se acedermos com o browser ao serviço já podemos ver que a pagina por defeito do apache já é servida através do HTTP2.

Conclusão

No CentOS 8 já é bem fácil usar o protocolo HTTP2 visto que só temos que fazer algumas configurações.

Apesar de ser possível instalar o Apache com suporte ao protocolo HTTP2 na versão 7 do CentOS era muito mais trabalhoso pois teríamos de compilar software ou usar repositórios de terceiros.

Artigos Relacionados:

Deixe uma resposta