BT

Apache Httpd 2.4: 17 Anos e mais desempenho, escalabilidade e suporte a cloud

por Fernando Lozano em 29 Fev 2012 |

Os 17 anos do servidor web Apache Httpd foram comemorados com o lançamento da versão 2.4. Entre as novidades, há recursos voltados para ambientes de nuvem, melhorias nas funcionalidades de proxy, balanceamento de carga, segurança, e um novo módulo de multiprocessamento (MPM) baseado em eventos. Estas mudanças tornam o Apache uma alternativa sólida para cenários em que se estava optando por outros servidores web, como Nginx ou Varnish.

O Apache Httpd é o servidor web mais popular da internet desde 1996, e a versão 2.4 é a primeira grande atualização do servidor desde 2005, quando foi lançada a versão 2.2. Recentemente, servidores alternativos vinham ganhando espaço em cenários de alto tráfego e alta concorrência, e as alterações no 2.4 focam justamente estes cenários.

Entre as principais novidades podem ser destacadas o suporte a operações assíncronas para os desenvolvedores de módulos e um avaliador de expressões genérico, de modo que agora a é utilizada a mesma sintaxe e execução otimizada para regras de segurança, reescrita de cabeçalhos ou URLs, proxy e cache. Também é possível definir regras baseadas em características da requisição em vez de apenas na localização de arquivos (<Directory>) ou URIs (<Location>) e definir um controle mais fino sobre o que pode ou não ser configurado junto aos diretórios de conteúdo, nos arquivos .htaccess, que são usados para dar autonomia limitada de configuração a webdesigners e desenvolvedores.

O Event MPM gerencia múltiplas conexões utilizando processamento assíncrono e tratamento de eventos, em vez de usar processos (Prefork MPM) ou threads (Worker MPM) dedicados para tratar cada conexão HTTP. Esta estratégia é semelhante à adotada pelos servidores Nginx e Node.js. Entretanto, processadores de scripts como o do PHP podem não ser compatíveis com o novo MPM.

Sysadmins irão apreciar os novos recursos para monitoração e administração de cache, por exemplo a capacidade de se remover o conteúdo de uma URL específica sem esvaziar todo o cache, ou a possibilidade de se usar vários diretórios diferentes (e portanto discos independentes).

As configurações de balanceamento agora podem ser dinâmicas, simplificando a adição ou remoção de instâncias em um ambiente de nuvem. O mod_proxy_balancer pode trabalhar junto com novos módulos, como o mod_heartbeatmonitor, para obter informações de carga das instâncias sendo balanceadas e assim distribuir a carga de modo mais eficiente. Também é possível definir "configurações em massa" para o proxy e balanceador, simplificando a configuração de servidores que atuam como front-end para múltiplas aplicações.

Para os desenvolvedores, são oferecidos dois novos módulos: mod_session, que oferece uma infraestrutura genérica para manutenção de sessões http, e mod_auth_form, que implementa um mecanismo de autenticação baseado em POST, semelhante ao FORM do Java EE. Os dois módulos evitam a duplicação destas funcionalidades em processadores de linguagens de script, aumentam a resistência a ataques de session fixation, e permitem transferir a autenticação para um servidor Apache Httpd atuando como balanceador ou cache na frente de servidores de aplicação dedicados. Uma nova API permite a módulos e linguagens de script fazer cache de pequenos objetos, usando memória compartilhada, arquivos DBM ou o memcached.

Na área de segurança, o mod_ssl agora é capaz de se comunicar diretamente com um servidor OCSP para validar certificados de clientes, em vez de depender de uma CRL em disco, que necessitaria de atualização externa. Já o mod_auth_ldap passa a suportar grupos aninhados, simplificando a integração com o Active Directory.

Downloads e documentação podem ser obtidos no site do projeto, incluindo binários prontos para Windows (que suportam páginas ASP). Ambientes de produção devem usar o release 2.4.1, que é considerado o primeiro release GA (com qualidade de produção) da série 2.4.x. Usuários de Linux podem compilar os fontes em seus ambientes, ou aguardar pela liberação de pacotes prontos pela suas distribuições favoritas. Espera-se que distribuições de comunidade como CentOS, Debian e Fedora liberem estes pacotes no curto prazo; já distribuições comerciais como RHEL e SuSE podem demorar mais, devido às garantias de compatibilidade binária entre atualizações.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT