SERVIDORES HTTP
Profa Regiane E. Fantinati
Servidores WWW
Conceito de Servidor WWW Disponibilizador de informação numa rede Permite acesso simplificado através de cliente
unificado e simples (browser WWW) Computadores Consolas de jogo (DreamCast, PS2, etc) PDA’s Aparelhos (frigoríficos, etc) Computadores de bordo (automóveis, etc)
Servidores WWW Conceito de Servidor WWW
O servidor WWW funciona como interface entre aplicações e o utilizador Esconde as aplicações do utilizador Ajuda a focar o utilizador nos serviços Permite construir novas aplicações através da
interligação de aplicações existentes São necessários mecanismos de programação
no servidor WWW CGI – execução de programas externos Embebidos – linguagens internas ao servidor WWW
Servidores HTTP
Servidor HTTP Apache Aplicação open source (
http://www.apache.org) Servidor HTTP MS IIS
Aplicação proprietária Outros servidores HTTP
Xitami, Zeus, OmniHTTPd, etc
Servidores HTTP
Detalhes sobre servidores HTTP em uso Percentagem de Mercado
Segundo a netcraft, sites sob Apache representam cerca de dois terços dos sites publicados na web.
Servidor Apache
Características Código mantido por uma comunidade
aberta Elevada confiabilidade Excelente desempenho Grande flexibilidade de configuração e uso Suporte de várias plataformas Estruturado em módulos Administração através de linha de
comandos
Servidor MS-IIS
Características Código proprietário Razoável fiabilidade (dependente do SO) Bom desempenho Suporte de plataforma Windows Administração e depuração através de
interface gráfica;
Outros Servidores Características e Funcionalidades
Xitami Simples, bom desempenho em Windows,
UNIX, OS/2 e VMS Suporta HTTP 1.0 e CGI (LRWP)
OmniHTTPd Compacto e para Windows Suporta HTTP 1.0 e CGI
Zeus Comercial mas muito sofisticado Suporta tudo (HTTP 1.1, SQL, etc)
iPlanet (Sun) Bastante conhecido e sofisticado
SERVIDOR HTTP - APACHE
LAMP - LINUX + APACHE + MYSQL + PHP
O Apache é um servidor web seguro e com inúmeros módulos , que adicionam suporte a um grande número de recursos;
A maioria das páginas atuais utiliza uma estrutura em PHP, freqüentemente com um banco de dados MySL.
Apache
A principal característica do Apache é a modularidade. Ao invés de ser um aplicativo grande e complexo, que tenta desempenhar sozinho todas as funções o apache se limita a executar uma única tarefa: entregar páginas html e outros tipos de arquivos aos clientes. Qualquer outra coisa é invariavelmente feita por um módulo externo.
Por exemplo, quando você acessa uma página em PHP em um site que roda sobre um servidor Apache ...
Apache
O 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, entra em ação outro módulo, como o php4-mysql, que permite que o interpretador PHP acesse o banco de dados
Apache modularidade
Cliente
Apache
modphp
Interpretador PHP
Php4-mysql
ServidorMySQL
Apache No apache2, a arquitetura modular é
extendida também aos arquivos de configuração que estão organizados dentro do diretório /etc/apache2.
/etc
Apache2/Sites-avaible/
Sites-enabled/
Mods-avaible/
Mods-enabled/Conf.d/Apache2.conf
Ports.conf
ApacheArquivos de configuração
sites-available/ e sites-enabled/ contém as configurações dos sites hospedados;
mods-available/ mods-enabled/ armazenam as configurações dos módulos;
o arquivo ports.conf, onde vai a configuração das portas TCP que o servidor vai escutar;
apache2.conf armazena configurações diversas relacionadas ao funcionamento do servidor;
conf.d/ armazena arquivos com configurações adicionais;
Apache
Como funciona? O apache é capaz de hospedar simultaneamente
vários sites, cada um representado por um arquivo de configuração diferente. Imagine o caso de uma empresa de hosting que mantém um servidor com 2.000 pequenos sites.
Quando cada cliente registra seu site e assina o plano de hospedagem, você cria um novo arquivo dentro da pasta sites-available com as configurações necessárias e um link para ele na pasta sites-enabled.
Apache
A primeira pasta armazena a configuração de todos os sites hospedados no servidor, mas apenas os sites que estiverem presentes na pasta sites-enabled ficam disponíveis. Quando é necessário suspender temporariamente um site por falta de pagamento, você simplesmente remove o link na pasta sites-enabled sem precisar mexer na configuração
Apache
Ao invés de criar e remover os links manualmente, você pode usar os comandos a2ensite e a2dissite, que fazem isso p você. Para ativar e desativar um site configurado no arquivo /etc/apache2/sites-available/nomearquivo, por exemplo, os comandos seriam:
#a2ensite nomearquivo (ativa) #a2dissite nomearquivo (desativa)
Apache
Quando o apache é instalado, é criado por padrão o arquivo /etc/apache2/sites-avaible/default.
Este arquivo contém a configuração de um site “raiz” que usa como diretório de páginas a pasta “/var/www”. Se o seu servidor web vai hospedar um único site, então essa configuração é suficiente. Mas, caso você queira hospedar vários sites no mesmo servidor, é necessário criar uma pasta e um arquivo de configuração para cada site adicional.
Apache
Seu servidor pode, por exemplo, hospedar o “joão.com.br”e o maria.com.br.
Na configuração do Apache, criamos os arquivos: “/etc/apache2/sites-avaible/joao” e “/etc/apache2/sites-avaible/maria”, um utilizando a pasta “var/www/joao”e “/var/www/maria”.
Apache
Quando um visitante digita http://joao.com.br, o servidor da FAPESP (que corresponde pelo domínio .br) vai passar a requisição para o seu servidor DNS, que responde enviando o arquivo “/var/www/joão/index.html” ou index.php” ao cliente.
A pasta “mods-avaible” contém a configuração e scripts de inicialização para todos os módulos disponíveis, mas apenas os módulos referenciados (através de um link)na pasta “mods-enabled” são realmente carregados.
Apache
A mesma idéia das duas pastas separadas se aplica aos módulos. Se houver necessidade de deletar basta usar os comandos: “a2enmod” e “a2dismod”, que ativam e desativam módulos especifico: Para desativar o suporte a PHP, você usaria o comando:
# a2dismod php4 Para ativa-lo novamente, usaria: # a2enmod php4 Uma vez que um determinado modulo é ativado,
ele fica automaticamente disponível para todos os sites hospedados no servidor.
Apache
Sempre que mexer na configuração dos módulos ou sites, é sempre necessário recarregar a configuração, para que a alteração entre em vigor.
# /etc/init.d/apache2 force-reload Este comando proporciona o mesmo
efeito se simplesmente reiniciar o apache.
Apache ports.conf
Originalmente esse arquivo vem com uma única linha:
# Listen 80 É aqui que você altera a porta padrão do
seu servidor ou adiciona novas portas.. Para fazer com que o seu servidor escute
também a porta 8080, vc adicionaria uma nova linha, como em:
Listen80 Listen8080
Apache apache2.conf
O Arquivo apache2.conf agrupa o resto das configurações. É ele que você vai alterar quando, por exemplo, ajustar o numero de processos usados pelo apache ou aumentar o numero de conexões simultâneas permitidas pelo servidor.
ApacheInstalando o Apache
No Debian, os comandos: Apt-get install apache2 - instala o apache2 Apt-get install apache2-utils - instala
utilitários de gerenciamento Apt-get apache-doc – Instala a documentação Acessando o endereço http://127.0.0.1 ou
digitando localhost no no browser, vc terá uma página de boas vindas, que indica que o servidor está funcionando. Se não houver nenhum firewall no caminho, ele já estará acessível a partir de outros micros da rede local ou da internet.
Referências Bibliográficas
MOTA, F. J. E. Linux e seus servidores. Rio de Janeiro: Ciência Moderna, 2000.