Apache é um servidor web distribuído gratuitamente. O software é um produto multiplataforma, ou seja, roda em diferentes sistemas operacionais (Linux, Windows, Solaris, etc.).
As principais diferenças em relação aos concorrentes são confiabilidade e flexibilidade. O Apache trabalha com o princípio dos módulos. O cliente primeiro instala o kernel e, em seguida, conecta os módulos necessários para suas tarefas.
O princípio de funcionamento
O Apache processa solicitações cliente-servidor pelo protocolo HTTP. O servidor web possui 3 módulos de multiprocessamento que são responsáveis pelo processamento da solicitação do Usuário:
- Mpm_prefork cria um processo separado para cada solicitação do cliente. Quanto menos processos houver, mais rápido as tarefas do usuário serão processadas. A quantidade de RAM é alocada no servidor para cada solicitação. Este módulo geralmente é usado em conjunto com outros componentes externos que não podem funcionar no modo multithread, por exemplo, mod_php.
- Mpm_worker cria processos que funcionam com vários threads de uma só vez. Um thread lida com uma conexão de usuário. O módulo processa as solicitações do usuário mais rapidamente e carrega menos recursos do servidor.
- Mpm_event é projetado para trabalhar com conexões persistentes (keep-alive). Ele divide os fluxos em permanentes e ativos, o que permite aumentar a velocidade de processamento das solicitações dos usuários.
Existem módulos que são otimizados para uma família de sistemas operacionais. Por exemplo, o módulo mpm_winnt funciona com o Sistema Operacional Windows, mpm_netware — com Netware.
Recursos
Os desenvolvedores tornaram o Apache o mais acessível e fácil de usar possível. A comunidade lança regularmente patches e atualizações.
O Apache possui um recurso de virtualização. Vários sites virtuais podem existir no mesmo endereço IP. Cada host é configurado para atender aos requisitos individuais do cliente: definir direitos de acesso a arquivos, limitar o consumo de poder de computação do servidor físico, etc.
Para o servidor web, existem módulos que adicionam suporte para outras linguagens (DBMS escritas em C) ao kernel Apache, por exemplo, PHP, Ruby, Perl.
O Apache possui vários recursos de segurança integrados. Isso inclui o sistema de autorização do Usuário, restrição de acesso por endereços IP, diferenciação de direitos de acesso a diretórios e arquivos no servidor, etc. A função de iniciar processos com base em IDs de usuário ou grupo está disponível.
Se necessário, o usuário pode criptografar os dados transmitidos entre o servidor e o cliente usando o protocolo SSL. Recursos de segurança adicionais são habilitados através do módulo mod_security.
O servidor web Apache foi projetado para executar um site sem movimentos desnecessários. A interface intuitiva, o sistema modular, os mecanismos de proteção integrados e muitos outros recursos o tornam um dos servidores web mais populares.