Servidor HTTP Apache Versão 2.4

Apache > Servidor HTTP > Documentação > Versão 2.4

# Visão geral das novas funcionalidades no Servidor HTTP Apache 2.2

Línguas Disponíveis: en | fr | ko | pt-br | tr

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.

## Melhorias do Núcleo ¶

Authn/Authz
  Os módulos de autenticação e autorização incluídos foram refatorados. O novo módulo mod_authn_alias (já removido das versões 2.3/2.4) pode simplificar bastante certas configurações de autenticação. Consulte alterações nos nomes dos módulos e as alterações para desenvolvedores para obter mais informações sobre como essas alterações afetam usuários e desenvolvedores de módulos.
Cache
  `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`.
Configuração
  O layout de configuração padrão foi simplificado e modularizado. Trechos de configuração que podem ser usados ​​para habilitar recursos comumente utilizados agora estão incluídos no Apache e podem ser facilmente adicionados à configuração principal do servidor.
Parada graciosa
  Os MPMs `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.
Proxy
  O novo módulo `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.
Biblioteca de Expressões Regulares Atualizada
  A versão 5.0 da Biblioteca de Expressões Regulares Compatíveis com Perl (PCRE) agora está incluída. O `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.
Filtragem Inteligente
  `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.
Suporte a Arquivos Grandes
  `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.
MPM de Eventos
  O módulo MPM `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.
Suporte a Banco de Dados SQL
  `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.

## Melhorias nos Módulos ¶

Authn/Authz
  Módulos no diretório "aaa" foram renomeados e oferecem um suporte melhor para autenticação "digest". Por exemplo, `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_ldap`
  Este módulo é uma adaptação do módulo `mod_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_owner`
  Um novo módulo que autoriza o acesso a arquivos com base no proprietário do arquivo no sistema de arquivos.
`mod_version`
  Um novo módulo que permite habilitar blocos de configuração com base no número da versão do servidor em execução.
`mod_info`
  Adicionado um novo argumento `?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_ssl`
  Adicionado suporte à RFC 2817, que permite que conexões sejam atualizadas de texto puro para criptografia TLS.
`mod_imagemap`
  `mod_imap` foi renomeado para `mod_imagemap` para evitar confusão pelo usuário.

## Melhorias na Aplicação ¶

`httpd`
  Uma nova opção de linha de comando `-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`.
`httxt2dbm`
  Um novo programa usado para gerar arquivos dbm a partir de entrada de texto, para uso em `RewriteMap` com o tipo de mapa `dbm`.

## Alterações para Desenvolvedor de Módulos ¶

API APR 1.0
  Apache 2.2 usa a API APR 1.0. Todas as funções e símbolos descontinuados foram removidas do `APR` e do `APR-Util`. Para detalhes, consulte o Website do APR.
Authn/Authz
  Os módulos de autenticação e autorização foram renomeados da seguinte forma:
  - `mod_auth_*` -> Módulos que implementam um mecanismo de autenticação HTTP
  - `mod_authn_*` -> Módulos que fornecem um provedor de autenticação de backend
  - `mod_authz_*` -> Módulos que implementam autorização (ou acesso)
  - `mod_authnz_*` -> Módulos que implementam tanto autenticação quanto autorização
  Existe um novo esquema de provedor de backend de autenticação que facilita bastante a construção de novos backends de autenticação.
Registro de Erros de Conexão
  Uma nova função, `ap_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.
Gancho de Configuração de Teste Adicionado
  Um novo gancho, `test_config`, foi adicionado para auxiliar módulos que desejam executar código especial somente quando o usuário passar `-t` para `httpd`.
Definindo o Tamanho da Pilha de MPMs com Threads
  Uma nova diretiva, `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.
MAnipulação de protocolo para filtros de saída
  No passado, cada filtro era responsável por garantir a geração de cabeçalhos de resposta corretos que os afetasse. Os filtros agora podem delegar o gerenciamento de protocolos comuns para `mod_filter`, usando as chamadas `ap_register_output_filter_protocol` ou `ap_filter_protocol`.
Gancho de monitoramento adicionado
  O gancho de monitoramento permite que os módulos executem tarefas regulares/agendadas no processo pai (raiz).
Alterações na API de expressões regulares
  O cabeçalho `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`.
Framework DBD (API de banco de dados SQL)

  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.

Línguas Disponíveis: en | fr | ko | pt-br | tr