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 programação no servidor WWW de CGI – execução de programas externos Embebidos – linguagens internas ao servidor WWW Servidores HTTP Servidor HTTP Apache Aplicação open (http://www.apache.org) Servidor HTTP MS IIS Aplicação proprietária Outros servidores HTTP Xitami, Zeus, OmniHTTPd, etc source 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 interface gráfica; de 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 modphp Php4-mysql Cliente Apache Interpretador PHP Servidor MySQL 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 Sites-avaible/ Apache2/ Sites-enabled/ Ports.conf Apache2.conf Mods-avaible/ Conf.d/ Mods-enabled/ Apache Arquivos 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/sitesavailable/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/sitesavaible/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. Apache Instalando 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.