Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 1. Configurando o servidor web Apache HTTP

1.1. Introdução ao servidor web Apache HTTP

Um web server é um serviço de rede que serve conteúdo para um cliente através da web. Isso normalmente significa páginas web, mas quaisquer outros documentos também podem ser ser servidos. Os servidores web também são conhecidos como servidores HTTP, pois utilizam o hypertext transport protocol (HTTP).

O Apache HTTP ServerA Apache Software Foundation, httpd, é um servidor web de código aberto desenvolvido pela Apache Software Foundation.

Se você estiver atualizando a partir de um lançamento anterior do Red Hat Enterprise Linux, você precisará atualizar a configuração do serviço httpd de acordo. Esta seção revisa alguns dos recursos recém-adicionados e o orienta através da atualização dos arquivos de configuração anteriores.

1.1.1. Mudanças notáveis no Servidor HTTP Apache

O Apache HTTP ServerEsta versão atualizada inclui várias características novas, mas mantém compatibilidade com a versão RHEL 7 no nível de configuração e Interface Binária de Aplicação (ABI) dos módulos externos.

As novas características incluem:

  • HTTP/2 agora é fornecido pelo pacote mod_http2, que faz parte do módulo httpd.
  • é suportada a ativação do soquete systemd. Consulte a página de manual httpd.socket(8) para mais detalhes.
  • Múltiplos novos módulos foram adicionados:

    • mod_proxy_hcheck - um módulo de verificação de saúde por procuração
    • mod_proxy_uwsgi - um proxy de interface Web Server Gateway (WSGI)
    • mod_proxy_fdpass - fornece suporte para a passagem do soquete do cliente para outro processo
    • mod_cache_socache - um cache HTTP usando, por exemplo, o backend memcache
    • mod_md - um serviço de certificado do protocolo ACME SSL/TLS
  • Os seguintes módulos agora são carregados por padrão:

    • mod_request
    • mod_macro
    • mod_watchdog
  • Um novo subpacote, httpd-filesystem, foi adicionado, que contém o layout básico do diretório para o Apache HTTP Server incluindo as permissões corretas para os diretórios.
  • O suporte de serviço instantâneo, httpd@.service foi introduzido. Veja a página de manual httpd.service para mais informações.
  • Um novo httpd-init.service substitui o %post script para criar um par de chaves autoassinado mod_ssl.
  • O provisionamento e renovação automatizada de certificados TLS usando o protocolo ACME (Automatic Certificate Management Environment) é agora suportado com o pacote mod_md (para uso com provedores de certificados como Let’s Encrypt).
  • O Apache HTTP Server agora suporta o carregamento de certificados TLS e chaves privadas a partir de tokens de segurança de hardware diretamente dos módulos PKCS#11. Como resultado, uma configuração mod_ssl pode agora usar PKCS#11 URLs para identificar a chave privada do TLS e, opcionalmente, o certificado TLS nas diretivas SSLCertificateKeyFile e SSLCertificateFile.
  • Uma nova diretiva ListenFree no arquivo /etc/httpd/conf/httpd.conf é agora suportada.

    De forma similar à diretiva Listen, ListenFree fornece informações sobre endereços IP, portas ou endereços IP - e combinações de portas que o servidor ouve. Entretanto, com ListenFree, a opção de soquete IP_FREEBIND é ativada por padrão. Assim, httpd é permitido vincular a um endereço IP não local ou a um endereço IP que ainda não existe. Isto permite que httpd escute em um socket sem exigir que a interface de rede subjacente ou o endereço IP dinâmico especificado esteja em alta no momento em que httpd estiver tentando ligar-se a ele.

    Note que a diretiva ListenFree está atualmente disponível apenas na RHEL 8.

    Para mais detalhes em ListenFree, consulte a tabela a seguir:

    Tabela 1.1. Sintaxe, status e módulos da diretriz ListenFree

    SintaxeStatusMódulos

    ListenFree [IP-address:]número de porta [protocolo]

    MPM

    evento, trabalhador, prefork, mpm_winnt, mpm_netware, mpmt_os2

Outras mudanças notáveis incluem:

  • Os seguintes módulos foram removidos:

  • O tipo padrão do banco de dados de autenticação DBM utilizado pelo Apache HTTP Server no RHEL 8 foi alterado de SDBM para db5.
  • O módulo mod_wsgi para o Apache HTTP Server foi atualizado para Python 3. As aplicações WSGI agora são suportadas somente com Python 3, e devem ser migradas a partir de Python 2.
  • O módulo multi-processamento (MPM) configurado por padrão com o Apache HTTP Server mudou de um modelo multi-processo, bifurcado (conhecido como prefork) para um modelo multi-rosca de alto desempenho, event.

    Qualquer módulo de terceiros que não seja seguro para a rosca precisa ser substituído ou removido. Para alterar o MPM configurado, edite o arquivo /etc/httpd/conf.modules.d/00-mpm.conf. Consulte a página de manual httpd.service(8) para mais informações.

  • Os mínimos UID e GID permitidos aos usuários pelo suEXEC são agora 1000 e 500, respectivamente (anteriormente 100 e 100).
  • O arquivo /etc/sysconfig/httpd não é mais uma interface suportada para definir variáveis de ambiente para o serviço httpd. A página de manual httpd.service(8) foi adicionada para o serviço systemd.
  • A interrupção do serviço httpd agora usa uma "parada graciosa" por padrão.
  • O módulo mod_auth_kerb foi substituído pelo módulo mod_auth_gssapi.

1.1.2. Atualização da configuração

Para atualizar os arquivos de configuração do Apache HTTP Server usada no Red Hat Enterprise Linux 7, escolha uma das seguintes opções:

  • Se /etc/sysconfig/httpd for usado para definir variáveis de ambiente, crie um arquivo drop-in do sistema em seu lugar.
  • Se algum módulo de terceiros for utilizado, certifique-se de que seja compatível com um MPM rosqueado.
  • Se for utilizado suexec, garantir que as identificações de usuário e grupo atendam aos novos mínimos.

Você pode verificar a configuração para possíveis erros usando o seguinte comando:

# apachectl configtest
Syntax OK