Entendendo o Servidor Apache

   Quando você acessa uma página em PHP em um site que roda sobre um servidor Apache, ele (Apache) lê o arquivo no disco e repassa a requisição para o modphp, o módulo encarregado de processar arquivos PHP. Ele, por sua vez, aciona o interpretador PHP, que processa a página e a entrega, já processada, ao Apache, que, finalmente, a entrega ao cliente. Caso seja necessário acessar um banco de dados (como no caso de um fórum), entra em ação outro módulo, como o php4-mysql, que permite que o interpretador PHP acesse o banco de dados:
Pode parecer estranho que depois de toda essa volta, o Apache ainda consiga entregar a página processada em tempo hábil, mas é justamente essa divisão de tarefas que permite que o Apache seja tão rápido e seguro. O trabalho é dividido em várias partes e cada módulo é mantido separadamente por uma equipe que entende do assunto e zela pelo desempenho e confiabilidade do código. Graças a isso, é bastante raro que sejam descobertos problemas graves de segurança no Apache ou no interpretador PHP, por exemplo. Quase sempre, os problemas de segurança não estão no servidor Web em si, mas sim no gestor de conteúdo (phpNuke, Xoops, phpBB, etc.) usado.
No Apache 2, esta arquitetura modular é extendida também aos arquivos de configuração. No Apache 1.3, a configuração era centralizada no arquivo "/etc/apache/httpd.conf", enquanto no Apache 2 ela é dividida em vários arquivos. À primeira vista, a organização do Apache 2 parece muito mais complicada, mas depois de entender a coisa se revela muito mais simples e lógica:
Todos os arquivos de configuração estão organizados dentro do diretório "/etc/apache2". Dentro dele, temos as pastas "sites-available" e "sites-enabled", que contém a configuração dos sites hospedados; as pastas "mods-available" e "mods-enabled", que armazenam a configuração dos módulos; o arquivo "ports.conf", onde vai a configuração das portas TCP que o servidor vai escutar; o arquivo "apache2.conf", que armazena configurações diversas relacionadas ao funcionamento do servidor e a pasta "conf.d", que armazena arquivos com configurações adicionais.




Características do Apache

Abaixo estão algumas características que fazem esse servidor web o preferido entre os administradores de sistemas:
  • Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc.
  • Suporte a autorização de acesso podendo ser especificadas restrições de acesso separadamente para cada endereço/arquivo/diretório acessado no servidor.
  • Autenticação requerendo um nome de usuário e senha válidos para acesso a alguma página/sub-diretório/arquivo (suportando criptografia via Crypto e MD5).
  • Negociação de conteúdo, permitindo a exibição da página Web no idioma requisitado pelo Cliente Navegador.
  • Suporte a tipos mime.
  • Personalização de logs.
  • Mensagens de erro.
  • Suporte a virtual hosting (é possível servir 2 ou mais páginas com endereços/ portas diferentes através do mesmo processo ou usar mais de um processo para controlar mais de um endereço).
  • Suporte a IP virtual hosting.
  • Suporte a name virtual hosting.
  • Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configuráveis).
  • Suporte a proxy e redirecionamentos baseados em URLs para endereços Internos.
  • Suporte a criptografia via SSL,Certificados digitais
  • Módulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilação do programa.

Utilitários:
  • apache - Servidor Web Principal
  • apachectl - Shell script que faz interface com o apache de forma mais amigável
  • apacheconfig - Script em Perl para configuração interativa básica do Apache
  • htpasswd - Cria/Gerencia senhas criptografadas Crypto/MD5
  • htdigest - Cria/Gerencia senhas criptografadas Crypto/MD5
  • dbmmanage - Cria/Gerencia senhas em formato DBM (Perl)
  • logresolve - Faz um DNS reverso dos arquivos de log do Apache para obter o endereço de hosts com base nos endereços IP's.
  • ab - Apache Benchmarcking - Ferramenta de medida de desempenho do servidor Web Apache.
Por padrão, os arquivos de configuração do Apache residem no diretório /etc/apache:
httpd.conf
Arquivo de configuração principal do Apache, possui diretivas que controlam a operação do daemon servidor. Um arquivo de configuração alternativo pode ser especificado através da opção "-f" da linha de comando.
srm.conf
Contém diretivas que controlam a especificação de documentos que o servidor oferece aos clientes. O nome desse arquivo pode ser substituído através da diretiva ResourceConfig no arquivo principal de configuração.
access.conf
Contém diretivas que controlam o acesso aos documentos. O nome desse arquivo pode ser substituído através da diretiva AccessConfig no arquivo principal de configuração.
O servidor Web lê os arquivos acima na ordem que estão especificados (httpd.conf, srm.conf e access.conf). As configurações também podem ser especificadas diretamente no arquivo httpd.conf. Note que não é obrigatório usar os arquivos srm.conf e access.conf, mas isto proporciona uma melhor organização das diretivas do servidor, principalmente quando se tem um grande conjunto de diretivas. 

Arquivos de log criados pelo Apache

O servidor httpd grava seus arquivos de log geralmente em /var/log/apache, não é possível descrever os arquivos de logs usados porque tanto seus nomes como conteúdo podem ser personalizados no arquivo httpd.conf. Mesmo assim, os arquivos de logs encontrados na instalação padrão do Apache são os seguintes:
  • access.log - Registra detalhes sobre o acesso as páginas do servidor httpd.
  • error.log - Registra detalhes saber erros de acesso as páginas ou erros internos do servidor.

  • agent.log - Registra o nome do navegador do cliente (campo UserAgent do cabeçalho http). 


    Bom, para você saber mais entre no site a seguir, nele contém detalhadamente o assunto sob o Apache! 

    Boa Sorte!
 Fonte: Guia do hardware, Foca Linux

Comentários

Postagens mais visitadas deste blog

O IPv6 - Alocação de endereços

Característica do Protocolo FTP

A camada Aplicação - Modelo OSI