Linux - Servidor de Redes Servidor Web Apache Prof. Roberto Amaral
WWW Breve histórico Início 1989 CERN (Centro Europeu de Pesquisas Nucleares) precisava de um meio de viabilizar o trabalho cooperativo por cientistas espalhados por diversos países, através da troca de documentos. 1991 primeira versão da Web, baseada em texto. 1993 NCSA - browser gráfico Mosaic 1994 Netscape 1994 CERN e M.I.T fundam o W3C (w3.org) 24/5/2010 03:13:54 Prof. Marcelo Farias & Prof. Roberto Amaral 2
Plataforma Web Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado) 24/5/2010 03:13:58 Prof. Marcelo Farias & Prof. Roberto Amaral 3
HTTP - O Servidor Web Idéia básica: distribuição de conteúdo estático (tipicamente páginas escritas em HTML). Evolução: distribuição de conteúdo gerado dinamicamente, em resposta a dados fornecidos pelo usuário (por exemplo através da consulta a um banco de dados corporativo). CGI Common Gateway Interface: a forma mais antiga de prover conteúdo dinâmico. 24/5/2010 03:14:00 Prof. Marcelo Farias & Prof. Roberto Amaral 4
HTTP HTTP - HyperText Transmission Protocol é o protocolo usado na comunicação entre o servidor Web e o Browser. HTTP constitui a base sobre a qual o servidor Web realiza suas operações. A idéia inicial era a de que o HTTP deveria ser um protocolo bem simples. Mesmo após várias modificações e melhorias, a idéia básica do HTTP continua sendo a mesma simples. 24/5/2010 03:14:02 Prof. Marcelo Farias & Prof. Roberto Amaral 5
HTTP Todo site na Web deve manter um processo servidor que fica aceitando pedidos de conexão na porta TCP 80. Uma vez estabelecida a conexão, o cliente envia um pedido e o servidor envia a resposta correspondente. Tendo atendido o pedido, a conexão é encerrada. 24/5/2010 03:14:04 Prof. Marcelo Farias & Prof. Roberto Amaral 6
O modelo da operação da Web 24/5/2010 03:14:10 Prof. Marcelo Farias & Prof. Roberto Amaral 7
Requisição de Conexão 24/5/2010 03:14:12 Prof. Marcelo Farias & Prof. Roberto Amaral 8
Cliente / Servidor em HTTP 24/5/2010 03:14:14 Prof. Marcelo Farias & Prof. Roberto Amaral 9
Cliente / Servidor em HTTP O navegador determina a URL desejada O navegador pergunta ao DNS o endereço IP da www.w3.org DNS responde 18.23.0.23 O navegador efetua uma conexão TCP na porta 80 da máquina 18.23.0.23 Envia o comando GET /hypertext/www/project.htm O servidor www.w3.org envia Project.htm A conexão TCP é desfeita O navegador mostra o texto Project.htm O navegador carrega e mostra as imagens em Project.htm 24/5/2010 03:14:39 Prof. Marcelo Farias & Prof. Roberto Amaral 10
Cliente e servidor HTTP Servidor HTTP Gerencia um sistema virtual de arquivos e diretórios Mapeia pastas do sistema de arquivos local (ex.: c:\htdocs) a diretórios virtuais (ex: /) acessíveis remotamente Papel do servidor HTTP Interpretar requisições HTTP do cliente (métodos GET, POST,...) Devolver resposta HTTP à saída padrão (código de resposta 200, 404, etc., cabeçalho e dados) Papel do cliente HTTP Enviar requisições HTTP (GET, POST,...) a um servidor. Processar respostas HTTP recebidas (interpretar cabeçalhos, identificar tipo de dados, interpretar dados) 24/5/2010 03:14:18 Prof. Marcelo Farias & Prof. Roberto Amaral 11
Serviços de Informações: Tecnologias de Apresentação HTML 4.0 (HyperText Markup Language) Coleção de marcadores (SGML) usados para formatar texto: Nada diz sobre a aparência (browser é quem decide). Define apenas estrutura e conteúdo. CSS 2.0 (Cascading Style Sheets) Lista de regras de apresentação para uma página ou todo um site (linguagem declarativa) Depende da estrutura do HTML. 24/5/2010 03:14:34 Prof. Marcelo Farias & Prof. Roberto Amaral 12
Apatchy ou Apache? Em 95 a NCSA criou seu WEB Server A patches (Apatchy) 60% do servidores mundiais 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 13
Vantagens Suporte a HTTP para criação de hosts virtuais Suporte SSL Cuporte CGI, Perl e PHP Suporte a autenticação baseado em HTTP Suoporte a Server Side Includes (SSI) Suporte a Servlets Java Logs Customizáveis Configuração rápida e simples 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 14
Instalação Download: http://www.apache.org/dist Debian Ubuntu sudo apt-get install apache2 mysql-server-4.1 php5 php5-mysql Apartir do código fonte wget www.apache.org/dist/httpd/httpd-2.2.3.tar.gz tar xzvf apache-2.2.3.tar.gz./configure Make Make install 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 15
Verificando a instalação ou 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 16
Arquivos de Configuração Diretório de configuração /etc/apache ou /usr/local/apache/conf Apache 1.3.x httpd.conf, srm.conf e access.conf Apache 2 httpd.conf, ports.conf e apache2.conf 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 17
httpd.conf ou apache.conf - Básico Incializa de modo direto 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 18
httpd.conf ou apache.conf - Básico Diretório do apache 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 19
httpd.conf ou apache.conf - Básico Porta padrão para respostas 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 20
httpd.conf ou apache.conf - Básico Onde ficará o Doc. Principal Ou seja o index.* 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 21
httpd.conf ou apache.conf - Básico Seqüência de procura de arquivos principais. 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 22
httpd.conf ou apache.conf - Básico Quando não existe nenhuma página índice criada, o Apache exibe a estrutura de diretórios/arquivos 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 23
httpd.conf ou apache.conf - Básico Diretório lido para abrir páginas de usuário. Por padrão vai ser em: /home/usuário/public_html 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 24
httpd.conf ou apache.conf - Básico 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 25
httpd.conf ou apache.conf - Básico 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 26
httpd.conf ou apache.conf - Básico O Apache envia e-mail em caso de problemas, se tiver servidor SMTP 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 27
httpd.conf ou apache.conf Diretório onde estão os principais arquivos do programa Apache 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 28
httpd.conf ou apache.conf Diretório está o log dos erros do Apache 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 29
httpd.conf ou apache.conf Diretório está o log de acesso do Apache 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 30
httpd.conf ou apache.conf ou 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 31
Servidor Virtual Com o recurso de servidores virtuais, um servidor Apache pode hospedar vários endereços de diversos clientes, utilizando endereços IP virtuais ou NDS. 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 32
Servidor Virtual Utilizando a hipótese de IP Virtuais. 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 33
Servidor Virtual Criar dois diretórios: 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 34
Servidor Virtual Abrir o httpd.conf ou apache.conf 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 35
Servidor Virtual Alterando o IP Atende ao dois 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 36
Servidor Virtual 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 37
Autenticação Básica e Segurança Quando existe uma requisição feita por um navegador, existe um retorno do código 401 no status na autenticação do Header WWW. Nesse momento aparecerá uma caixa de diálogo pedindo os dados para autenticação. 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 38
Autenticação Básica e Segurança 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 39
Autenticação Básica e Segurança Este processo não é criptografado, mas pode em muitos casos resolver problemas de acesso para sites pagos, módulos especiais ou mesmo página proibidas. 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 40
Autenticação Básica e Segurança Diretivas AcessFileName Nome do arquivo que contem as regras AllowOverride Trocas as diretivas anteriores pela.htacess AuthType Autenticação básica sem criptografia AuthName Label da caixa de diálogo Require Usários ou grupos autorizados Satisfy Diretivas a serem satisfeitas 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 41
Autenticação Básica e Segurança Arquivo.htaccess (responsável pela segurança) AuthName Diretório seguro Aluno AuthUserFile /home/aluno/public_html/.senha Require user orelha chupeta maneh Gravar o arquivo.htacess no diretório a ser protegido e troque a permissão para 755 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 42
Autenticação Básica e Segurança Utilitário htpasswd Para criar m novo banco de dados de senha.htpasswd, emita o comando htpasswd mais a opção c, o nome de arquivo de senha e o nome de usuário, assim: $ /usr/sbin/htpasswd c.senha orelha Arquivo Usuário 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 43
Autenticação Básica e Segurança Escondido 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 44
Autenticação Básica e Segurança Alterando o httpd.conf 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 45
Autenticação Básica e Segurança Alterando httpd.conf 24/5/2010 03:06:22 Prof. Marcelo Farias & Prof. Roberto Amaral 46