CST Redes de Computadores Disciplina: Serviços de Rede Professor: Jéferson Mendonça de Limas Aula 14 Serviços Internet (Servidor Web Apache)
Roteiro de Aula Conceitos Básicos Funcionamento de Servidores Web Configurações do Apache 2 Prática
Conceitos Básicos A WWW é baseado em relacionamento Cliente/Servidor Cliente: Navegador Web (Browser) Servidor: Acesso via Http (Protocolo) O Protocolo HTTP permite transporte de várias mídias: Arquivos Texto Páginas Html Imagens Applets Java, etc.
Conceitos Básicos: Organização do Serviço Arquitetura two-tier Arquitetura three-tier
Conceitos Básicos: URL Os conteúdos são acessados por referências denominadas URL (Uniform Resouce Locators). Uma URL é composta por: Protocolo: Forma de acesso ao Conteúdo Servidor: Nome do Computador que tem o Serviço Domínio: Em qual rede está o computador Porta: Porta de conexão Caminho: Localização do Recurso no Servidor Recurso: Nome do Recurso dentro do Servidor
Conceitos Básicos: URL
O Protocolo HTTP HyperText Transport Protocol Versão 1.0 definida na RFC 1954 Versão 1.1 definida na RFC 2616 Procolo simples com comandos em texto, transportado através de conexões TCP na porta padrão 80. Objetivo de enviar requisições a servidores no formato de URLs e obter respostas na forma de conteúdos.
Exemplo de Requisição e Resposta
Principais Métodos HTTP GET Busca um objeto definido em um URL PUT POST HEAD DELETE Indica os dados que devem ser armazenados na URL Cria um novo objeto ligado a um objeto especificado na URL Similar ao GET, retorna apenas o cabeçalho do servidor Solicita a remoção da informações especificada na URL
Categoria Descrição Código Descrição 1 - - Informational 100 Continue 101 Switching protocols 2 - - Success 200 Ok 201 Created 202 Accepted 203 Non-authoritive information 3 - - Redirection 300 Multiple choices 301 Moved permanently 302 Moved temporarily 4 - - Client error 400 Bad request 401 Unauthorized 402 Payment required 403 Forbidden 404 Not found 415 Unsupported media type 426 Upgrade Required 5 - - Server error 500 Internal server error 501 Not implemented 502 Bad gateway 503 Service unavailable 505 HTTP version not supported
Servidores WEB Segundo Dados da Netcraft em Outubro de 2015 cerca de 35% dos domínios da Internet respondem as requisições utilizando o Servidor Web Apache. Mais Informações http://news.netcraft.com/archives/category/web-server-survey/
Servidores WEB O Apache é um dos mais antigos servidores e também um dos mais seguros. É composto com inúmeros módulos que permitem suporte a uma infinidade de recursos. Recursos mais comuns: Suporte ao PHP Suporte a Banco de Dados (MySQL e PostgreSQL) Suporte ao encriptação SSL
Outros Servidores Web Microsoft IIS (Internet Information Services) Nginx Entre outros (SUN, Google, etc...)
Razões para Usar o Apache O Apache, certamente é o Servidor Web mais utilizado atualmente no mundo inteiro. Existem diversos outros servidores WWW para UNIX, gratuitos ou comerciais, mas nenhum tem a base instalada do Apache, e certamente poucos têm sua flexibilidade, desempenho e segurança. Ele é gratuito e está presente em quase todas as distribuições Linux. (Maziero, 2006) É um servidor Web modular, simples e de fácil manutenção. Está bem documentado em livros e sites da Web.
O Funcionamento do Apache A principal característica do Apache é a modularidade, assim o principal processo limita-se a entregar páginas html e outros tipos de arquivos para os clientes. Os módulos ficam responsável pelas outras tarefas. Exemplo: Interpretação de Códigos PHP.
Funcionamento do Apache Apache mod_php php5-mysql Cliente Interpretador PHP Servidor Mysql
Apache no Debian e Derivados Aproveitando que modularidade do Apache também é extendida aos arquivos de configuração, o Debian e derivados implementam um divisão nestes arquivos. Motivos: Facilitar a manutenção do Servidor Web Melhorar o entendimento da configuração
Esquema configuração apache2 conf.d/ /etc mods-available/ apache2/ mods-enabled/ ports.conf mods-enabled/ apache2.conf sites-enabled/
Esquema de Configuração Apache2 ports.conf configuração das portas TCP (padrões: http 80 e https 443) apache2.conf configurações comuns do apache conf.d configurações adicionais sites-available e sites-enabled configurações dos sites hospedados no servidor mods-available e mods-enabled configurações dos módulos disponíveis para o apache
Comandos do Apache Para ativar e desativar um site: a2ensite [nome] ativa a2dissite [nome] desativa Para ativar e desativar módulos: a2enmod [nome] a2dismod [nome] Recarregar o apache /etc/init.d/apache2 force-reload /etc/init.d/apache2 reload
Configuração de VirtualHosts /etc/apache2/sites-available/serv2012 <VirtualHost *:80> ServerAdmin suporte@serv2012.com.br ServerName www.serv2012.com.br ServerAlias serv2012.com.br www.serv2012.com.br DocumentRoot /var/www/serv2012 </VirtualHost>
Configuração de VirtualHosts Alterar as linhas em /etc/apache2/sites-available/default de: NameVirtualHost * <VirtualHost *> para: NameVirtualHost *:80 <VirtualHost *:80>
Instalando Suporte a PHP5 e MySQL Instalar os seguintes pacotes: php5 php5-mysql libapache2-mod-php5 Caso o Banco de Dados desejado seja PostgreSQL php5-pgsql
Testando o acesso ao PHP Criar um arquivo em /var/www com o conteúdo: <?php phpinfo();?>
Prática Para instalar o apache com suporte já com suporte a PHP5 e ao Banco de Dados MySQL no Ubuntu basta utilizar o comando: sudo apt-get install lamp-server^