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 pacotemod_http2
, que faz parte do módulohttpd
. -
é 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 manualhttpd.service
para mais informações.
-
Um novo
httpd-init.service
substitui o%post script
para criar um par de chaves autoassinadomod_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 comoLet’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çãomod_ssl
pode agora usarPKCS#11
URLs para identificar a chave privada do TLS e, opcionalmente, o certificado TLS nas diretivasSSLCertificateKeyFile
eSSLCertificateFile
. 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, comListenFree
, a opção de soqueteIP_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 quehttpd
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 quehttpd
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 Sintaxe Status Mó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:
-
mod_file_cache
mod_nss
Use
mod_ssl
como um substituto. Para detalhes sobre a migração demod_nss
, veja Seção 1.10, “Exportar uma chave privada e certificados de um banco de dados NSS para utilizá-los na configuração de um servidor web Apache”.-
mod_perl
-
-
O tipo padrão do banco de dados de autenticação DBM utilizado pelo Apache HTTP Server no RHEL 8 foi alterado de
SDBM
paradb5
. -
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 manualhttpd.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çohttpd
. A página de manualhttpd.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ódulomod_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