Este documento descreve algumas das principais mudanças entre as
versões 2.2 e 2.4 do servidor HTTP Apache. Para obter informações sobre os novos recursos
desde a versão 2.0, consulte o documento Novos recursos
da versão 2.2.
Múltiplos MPMs agora podem ser compilados
como módulos carregáveis no momento da compilação.
O MPM escolhido pode ser configurado no momento da execução através da
diretiva LoadModule.
MPM de Eventos
O MPM de Eventos não é mais experimental
e agora é totalmente suportado.
Suporte assíncrono
Melhoria no suporte para leitura/escrita assíncronas para suportar MPMs e
plataformas.
Configuração de LogLevel por módulo e por diretório
A diretiva LogLevel agora pode ser
configurada por módulo e por diretório. Os novos modos trace1
a trace8 foram adicionados acima do nível
debug.
Seções de configuração por requisição
Seções <If>,
<ElseIf>
e <Else>
podem ser usadas para definir a configuração baseada em critérios
por requisição.
A nova diretiva AllowOverrideList
permite controle mais fino de quais diretivas são
permitidas em arquivos .htaccess.
Variáveis do arquivo de configuração
Agora é possível definir variáveis na configuração através da diretiva
Define, permitindo uma representação
mais clara se o mesmo valor for usado em vários lugares na configuração.
Uso reduzido de memória
Mesmo com várias novas funcionalidades, a versão 2.4.x tende a
usar menos memória que a 2.2.x.
Substitui o endereço IP remoto e o nome do host do cliente aparentes para a requisição,
com a lista de endereços IP apresentada por um proxy ou um balanceador de carga por meio
dos cabeçalhos da requisição.
Anteriormente um módulo de terceiros, este suporta a correção de links
HTML em uma situação de proxy reverso, onde o backend gera URLs que não
são válidos para os clientes do proxy.
O módulo mod_ssl agora pode ser configurado para usar um
servidor OCSP para verificar o status de validação de um certificado de cliente.
O servidor de resposta padrão é configurável, assim como
a decisão de priorizar o servidor de resposta designado no
próprio certificado do cliente.
mod_ssl agora também suporta grampeamento OCSP, onde o
servidor obtém proativamente uma verificação OCSP de seu certificado e
a transmite ao cliente durante a comunicação inicial.
mod_ssl agora pode ser configurado para compartilhar dados de sessão SSL
entre servidores através do memcached
Agora, além de RSA e DSA, também são suportadas chaves EC.
Suporte para TLS-SRP (disponível na versão 2.4.4 e posteriores).
A diretiva ProxyPass
agora é configurada de forma mais otimizada dentro de um bloco
Location ou
LocationMatch
e oferece uma vantagem de desempenho significativa em relação à sintaxe tradicional de dois parâmetros
quando presente em grande número.
O endereço de origem usado para solicitações de proxy agora é configurável.
Suporte para sockets de domínio Unix para o backend (disponível na versão 2.4.7
e posteriores).
Mais alterações de configuração em tempo de execução para BalancerMembers via balancer-manager.
BalancerMembers adicionais podem ser adicionados em tempo de execução através do balancer-manager.
Configuração em tempo de execução de um subconjunto de parâmetros do Balanceador.
Os membros do BalancerMembers podem ser configurados como 'Drain' para que respondam apenas a sessões
persistentes existentes, permitindo que sejam desconectados corretamente.
As configurações do balanceador podem persistir após reinicializações.
O filtro CACHE do módulo mod_cache pode ser inserido opcionalmente
em um determinado ponto da cadeia de filtros para fornecer um controle preciso sobre o cache.
O módulo mod_cache agora pode armazenar em cache as solicitações HEAD.
Sempre que possível, as diretivas mod_cache agora podem ser definidas
por diretório, em vez de por servidor.
O URL base dos URLs em cache pode ser personalizado, de forma que um grupo de
caches possa compartilhar o mesmo prefixo de URL de endpoint.
O módulo mod_cache agora é capaz de fornecer dados em cache desatualizados
quando um backend estiver indisponível (erro 5xx).
mod_cache agora pode inserir HIT/MISS/REVALIDATE em
um cabeçalho X-Cache.
Suporte para o atributo 'onerror' dentro de um elemento 'include',
permitindo que um documento de erro seja exibido em caso de erro, em vez da
string de erro padrão.
A tradução de cabeçalhos para variáveis de ambiente é mais rigorosa do que
antes para mitigar possíveis ataques de "cross-site scripting" via injeção de cabeçalho.
Nomes de cabeçalho contendo caracteres inválidos (incluindo sublinhados)
não são mais convertidos em variáveis de ambiente. A seção Variáveis de Ambiente
no Apache contém algumas dicas sobre como contornar problemas com clientes legados
que exigem esses cabeçalhos. (Isso afeta todos os módulos que
usam essas variáveis de ambiente.)
mod_ldap adiciona as diretivas
LDAPConnectionPoolTTL,
LDAPTimeout e
outras melhorias no gerenciamento de limites de tempo.
Isso é especialmente útil para configurações onde um
firewall com estados descarta conexões ociosas com o servidor LDAP.
mod_ldap adiciona a diretiva
LDAPLibraryDebug para registrar
informações de depuração fornecidas pelo kit de ferramentas LDAP utilizado.
Agora é possível listar os URLs armazenados em cache, com metadados opcionais
incluídos.
Permite excluir explicitamente, do cache, URLs individuais
armazenadas.
Os tamanhos dos arquivos agora podem ser arredondados para o tamanho de bloco fornecido, fazendo com que
os limites de tamanho correspondam mais de perto ao tamanho real no disco.
O tamanho do cache agora pode ser limitado pelo número de inodes, em vez de,
ou além de, ser limitado pelo tamanho dos arquivos no
disco.
A documentação do mod_rewrite foi
reorganizada e quase completamente reescrita, com foco em
exemplos e uso comum, além de mostrar quando outras
soluções são mais apropriadas. O Guia de
Reescrita agora é uma seção de nível superior com muito mais
detalhes e melhor organização.
mod_ssl
A documentação do mod_ssl foi bastante
aprimorada, com mais exemplos para iniciantes,
além do foco anterior em detalhes técnicos.
Guia de Cache
O Guia de Cache foi reescrito
para distinguir adequadamente entre os recursos de cache HTTP/1.1 da RFC2616
fornecidos pelo mod_cache e o cache genérico
de chave/valor fornecido pela interface socache
bem como para abranger o cache especializado fornecido por
mecanismos como o mod_file_cache.
Adicionado o Gancho de Verificação de Configuração
Um novo gancho, check_config, foi adicionado e é executado
entre os ganchos pre_config e open_logs.
Ele também é executado antes do gancho test_config
quando a opção -t é passada para o
httpd. O gancho check_config
permite que módulos revisem os valores de diretivas de configuração
interdependentes e os ajustem enquanto as mensagens ainda possam ser registradas
no console. Dessa forma, o usuário pode ser alertado sobre problemas de configuração incorreta
antes que a função principal do gancho open_logs redirecione
a saída do console para o log de erros.
Adicionado o Analisador de Expressões
Agora temos um analisador de expressões de propósito geral, cuja API é
exposta em ap_expr.h. Este é adaptado do
analisador de expressões implementado anteriormente em
mod_ssl.
Contêineres de Lógica de Autorização
Os módulos de autorização agora se registram como um provedor, por meio de
ap_register_auth_provider(), para oferecer suporte à lógica de autorização avançada,
como <RequireAll>.
Interface de Cache de Objetos Pequenos
O cabeçalho ap_socache.h expõe uma interface baseada em provedor
para armazenamento em cache de pequenos objetos de dados, baseada na implementação anterior
do cache de sessão do mod_ssl.
Provedores que utilizam um buffer cíclico de memória compartilhada, arquivos dbm baseados
em disco e um cache distribuído memcache são atualmente
suportados.
Adicionado o Gancho de Status de Cache
O módulo mod_cache agora inclui um novo
gancho cache_status, que é chamado quando a decisão de cache
se torna conhecida. Uma implementação padrão fornecida
adiciona à resposta um cabeçalho opcional X-Cache e
X-Cache-Detail.