Servidor HTTP Apache Versão 2.4

Este documento descreve algumas das principais mudanças entre as versões 2.0 e 2.2 do servidor HTTP Apache. Para obter informações sobre os novos recursos desde a versão 1.3, consulte o documento Novos recursos da versão 2.0.
mod_cache, mod_cache_disk e
mod_mem_cache (já removido das versões 2.3/2.4) tiveram muitas mudanças e
agora são considerados de qualidade de produção. htcacheclean
foi introduzido para limpar as configurações de
mod_cache_disk.prefork, worker e
event agora permitem que o httpd
seja desligado graciosamente através do sinal
graceful-stop.
A diretiva GracefulShutdownTimeout
foi adicionada para especificar um tempo limite ótimo, após o qual
httpd terminará independentemente do status
de quaisquer requisições sendo servidas.mod_proxy_balancer fornece
serviços de balanceamento de carga para mod_proxy.
O novo módulo mod_proxy_ajp adiciona suporte para o
Protocolo Apache JServ versão 1.3 usado pelo
Apache Tomcat.httpd pode ser
configurado para usar uma instalação do PCRE no sistema, passando a opção
--with-pcre para o comando de configuração.mod_filter introduz configuração dinâmica
à cadeia de filtros de saída. Ele permite que filtros sejam inseridos condicionalmente,
com base em qualquer cabeçalho "Request" ou "Response" ou variável de ambiente,
e dispensa as dependências mais problemáticas e
os problemas de ordenação na arquitetura 2.0.httpd agora é construído com suporte a arquivos maiores
que 2GB em sistemas Unix modernos de 32 bits. Também foi adicionado suporte
para lidar com corpos de requisição com mais de 2GB.event usa um thread separado para lidar com
solicitações "Keep Alive" e aceitar conexões. As solicitações "Keep Alive"
tradicionalmente exigiam que o httpd dedicasse um trabalhador para processá-las.
Esse trabalhador dedicado não podia ser usado novamente até que o tempo limite do "Keep Alive"
fosse atingido.mod_dbd, em conjunto com o framework apr_dbd,
traz suporte direto a SQL para os módulos que precisam.
Suporte grupos de conexões em MPMs com threads.mod_auth agora está dividido em
mod_auth_basic e
mod_authn_file; mod_auth_dbm agora é
chamado de mod_authn_dbm; mod_access foi
renomeado para mod_authz_host. Também existe um novo
módulo mod_authn_alias (já removido da versão 2.3/2.4) para simplificar
certas configurações de autenticação.
mod_authnz_ldapmod_auth_ldap da versão para o framework Authn/Authz
da versão 2.2. Os novos recursos incluem o uso de valores de atributos LDAP e
filtros de pesquisa complexos na
diretiva Require.mod_authz_ownermod_versionmod_info?config que mostrará
as diretivas de configuração analisadas pelo Apache, incluindo
o nome do arquivo e o número da linha. O módulo também
mostra a ordem de todos os ganchos de requisição e informações adicionais
de construção, similar a httpd -V.mod_sslmod_imagemapmod_imap foi renomeado para
mod_imagemap para evitar confusão pelo usuário.httpd-M foi adicionada. Ela
lista todos os módulos carregados com base na configuração atual.
Diferentemente da opção -l, esta lista
inclui DSOs carregados via mod_so.httxt2dbmRewriteMap
com o tipo de mapa dbm.APR e do
APR-Util. Para detalhes, consulte o
Website do APR.mod_auth_* -> Módulos que implementam um mecanismo
de autenticação HTTPmod_authn_* -> Módulos que fornecem um provedor
de autenticação de backendmod_authz_* -> Módulos que implementam
autorização (ou acesso)mod_authnz_* -> Módulos que implementam tanto
autenticação quanto autorizaçãoap_log_cerror, foi adicionada para registrar
erros que ocorrem com a conexão do cliente. Quando registrada,
a mensagem inclui o endereço IP do cliente.test_config, foi adicionado para auxiliar
módulos que desejam executar código especial somente quando o usuário passar
-t para httpd.ThreadStackSize foi adicionada para
definir o tamanho da pilha em todos os MPMs com threads. Isso é necessário
para alguns módulos de terceiros em plataformas com tamanho de pilha de
threads padrão pequeno.mod_filter, usando as chamadas
ap_register_output_filter_protocol ou
ap_filter_protocol.pcreposix.h não está mais disponível;
ele foi substituído pelo novo cabeçalho ap_regex.h.
A implementação POSIX.2 regex.h exposta pelo antigo
cabeçalho agora está disponível no namespace ap_
a partir de ap_regex.h. Chamadas para regcomp,
regexec e assim por diante podem ser substituídas por chamadas para
ap_regcomp, ap_regexec.Com o Apache 1.x e 2.0, os módulos que exigiam um backend SQL tinham que assumir a responsabilidade de gerenciá-lo por conta própria. Além de reinventar a roda, isso pode ser muito ineficiente, por exemplo, quando vários módulos mantêm suas próprias conexões.
O Apache 2.1 e versões posteriores fornecem a API ap_dbd para
gerenciar conexões de banco de dados (incluindo estratégias otimizadas
para MPMs com e sem threads), enquanto o APR 1.2 e versões posteriores fornecem
a API apr_dbd para interagir com o banco de dados.
Novos módulos DEVEM agora usar essas APIs para todas as operações de banco de dados SQL. Os aplicativos existentes DEVEM ser atualizados para usá-las sempre que possível, seja de forma transparente ou como uma opção recomendada aos seus usuários.