>_Apache 1.1

O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada pela NetCraft em dezembro de 2007, foi constatado que a utilização do Apache representa 47.20% dos servidores ativos no mundo. Em setembro de 2009 Apache serviu mais de 54,48% de todos os sites e mais de 66% dos milhões de sites mais movimentados.
É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos.

O servidor é compatível com o protocolo HTTP versão 1.1. Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos — utilizando a API do software.

É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc).

Características do servidor Apache

O servidor Apache é capaz de executa código em PHP, Perl, Shell Script e até em ASP e pode atuar como servidor FTP, HTTP, entre outros. Sua utilização mais conhecida é a que combina o Apache com a linguagem PHP e o banco de dados MySQL.
A exigência de hardware do Apache depende de sua aplicação, mas um PC Pentium com 64 MB de memória RAM é capaz de executá-lo tranqüilamente em um ambiente corporativo pequeno. No entanto, quando se trata de um site na internet, é interessante ter máquinas tão poderosas quanto o que exige o nível de acesso.

Abaixo, segue um resumo com as principais características:

– 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.

MPM Worker e MPM PreFork

De acordo com a documentação oficial do projeto Apachemom, é possível escolher entre algumas configurações que ajudam a otimizar a performance ou manter a compatibilidade com aplicações antigas, por exemplo: Vamos entender as particularidades do modo PreFork e Worker.

MPM PreFork

Neste modo, o apache trabalhará com a implementação de multi processos, de acordo com a estrutura clássica de um processo de Unix, similiar a versão 1.3 do Web server em questão.

Assim sendo, único processo será responsável por executar novos processos que serão utilizados para aguardar novas conexões e responder as requisições existentes. Este modo é ideal para quem precisa manter compatibilidade com aplicações e bibliotecas que não suportam o modo  thread.

MPM Worker

No modo MPM Worker, o Apache trabalhará com uma implementação mista de processos e threads, o que possibilita atenteder mais conexões simultâneas cm um custo menor de hardware, já que threads, por definição, são mais velozes que processos.

Neste modo, o apache mantém uma série de threads ociosos, fazendo com que novas conexões sejam processadas e respondidas de uma maneira mais rápida do  que no modo PreFork. Infelizmente, nem toda aplicação se dá bem com threads, como o PHP5, por exemplo.

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).

Iniciando o servidor/reiniciando/recarregando a configuração

O Apache pode ser executado tanto como um servidor Inetd ou como um Daemon. A inicialização de programas pelo Inetd é uma boa estratégia quando você precisa de um controle de acesso básico (o fornecido pelo tcpd), e o serviço é pouco usado na máquina.

A segurança de um serviço iniciado pelo inetd pode ser substituída e melhorada por um firewall bem configurado, garantindo facilidades extras como um relatório de tráfego para a porta do servidor web, por exemplo. Mesmo assim se o servidor Apache estiver rodando como daemon e estiver ocioso, ele será movido para swap liberando a memória RAM para a execução de outros programas.

Neste capítulo será assumido seu funcionamento do Apache como Daemon, que é o método de funcionamento recomendado para sites de grande tráfego onde ele é freqüentemente requisitado e considerado um serviço crítico.

O método padrão para iniciar programas como daemons na Debian é através dos diretórios /etc/rc?.d. Cada diretório deste contém os programas que serão executados/interrompidos no nível de execução “?” (rc1.d/, rc2.d/ …). O conteúdo destes diretórios são links para os scripts originais em /etc/init.d/programa, o nosso programa alvo é /etc/init.d/apache. O /etc/init.d/apache aceita os seguintes parâmetros:

start – Inicia o Apache

stop – Finaliza o Apache

restart – Reinicia o Apache, efetuando uma pausa de 5 segundos entre a interrupção do seu funcionamento e reinicio.

reload – Recarrega os arquivos de configuração do Apache, as alterações entram em funcionamento imediatamente.

reload-modules – Recarrega os módulos. Basicamente é feito um restart no servidor.

force-reload – Faz a mesma função que o reload

Para reiniciar o Apache usando o /etc/init.d/apache, digite:

./etc/init.d/apache restart

ou

cd /etc/init.d;./apache restart

Na realidade, o que o /etc/init.d/apache faz é interagir diretamente com o shell script apachectl.

O apachectl recebe os parâmetros enviados pelo usuário e converte para sinais que serão enviados para o binário apache. Da mesma forma ele verifica os códigos de saída do apache e os transforma em mensagens de erro legíveis para o usuário comum. Os seguintes comandos são aceitos pelo apachectl:

httpd-server/start – Inicia o Apache

stop – Finaliza o Apache (enviando um sinal TERM)

restart – Reinicia o Apache (enviando um sinal HUP)

graceful – Recarrega os arquivos de configuração do Apache (enviando um sinal USR1)

fullstatus – Mostra o status completo do servidor Apache (requer o lynx e o módulo mod_status carregado).

status – Mostra o status do processo do servidor Apache (requer o lynx e o módulo mod_status carregado).

configtest – Verifica se a sintaxe dos arquivos de configuração está OK (executa um apache -t). 12.1.10 Opções de linha de comando

-D nome – define um nome que será usado na diretiva <IfDefine nome>.

-d diretório – especifica o diretório ServerRoot (substitui o do arquivo de configuração).

-f arquivo – especifica um arquivo ServerConfigFile alternativo.

-C “diretiva” – processa a diretiva antes de ler os arquivo de configuração.

-c “diretiva” – processa a diretiva depois de ler os arquivos de configuração.

-v – mostra a versão do programa.

-V – mostra opções usadas na compilação do Apache.

-h – Mostra o help on-line do programa

-l – lista módulos compilados junto com o Apache (embutidos)

-L – lista diretivas de configurações disponíveis

-S – Mostra configurações de Virtual Hosting

-t – executa a checagem de sintaxe nos arquivos de configuração do Apache (incluindo a checagem da diretiva DocRoot).

-T – executa a checagem de sintaxe nos arquivos de configuração do Apache (menos da diretiva DocRoot).

Esses foram alguns dos principais parâmetros do servidor Apache.

>_Apache 1.1
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: