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.