Baixe o app para aproveitar ainda mais
Prévia do material em texto
Servidor Web Administração de Sistemas Abertos Professor: Anderson Costa anderson@ifpb.edu.br 2 Introdução World Wide Web (WWW) – Conjunto de todos os sites web Sites Web = conjunto de documentos HTML? Sites Web = conjunto de documentos HTML + objetos inseridos? Sites Web = conjunto de qualquer tipo de conteúdo multimídia? – Vídeo, Som, Imagem e Texto O que vem por aí? Como localizar todo este conteúdo – Uniform Resource Locator (URL) Endereços dos recursos – Links entre os recursos 3 Ponto de vista do usuário Arquitetura em Teia (web) <html> <body> ... URL <html> <body> ... Link 1 <html> <body> ...Link 3 <html> <body> ... Link 5 <html> <body> ... Link 6 <html> <body> ... Link 2 Link 4 Arquitetura Cliente/Servidor 4 A Realidade <html> <body> ... URL <html> <body> ... Link 1 <html> <body> ... Link 3 <html> <body> ... <html> <body> ... Link 6 <html> <body> ... Link 2 Link 4 = Link 5 Site 2 Site 1 Site 3 Site 4 5 HTTP Servidores Web – Armazenam páginas e objetos que serão entregues aos clientes Páginas contém objetos – Servidores e Clientes Web (browsers) falam HTTP Protocolo Hypertext Transfer Protocol (HTTP) – Modelo Cliente/Servidor – Função: transferência de recursos entre cliente e servidor – Usa TCP Por quê? Linux executando Firefox Windows executando IE Servidor Web OpenBSD 6 HTTP 1.0 vs HTTP 1.1 Cliente Servidor P á g in a p ri n ci p a l R ep et id o p a ra ca d a o b je to HTTP 1.0 Cliente Servidor P á g in a p ri n ci p a l R ep et id o p a ra ca d a o b je to HTTP 1.1 7 Servidor Web Apache Desenvolvido pela Apache Software Foundation – http://www.apache.org/ Muito difundido – Roda em plataformas BSDs, Windows e Linux Instalação – No Ubuntu, Debian e derivados apt-get install apache2 – Em outras distros é chamado httpd Configuração – Ubuntu, Debian e derivados Usa uma arquitetura com arquivos de configuração espalhados – Em outras distros, normalmente usa um arquivo único: o httpd.conf 8 Arquitetura de Configuração Árvore /etc |- apache2 |- apache2.conf |- mods-available/ |- mods-enabled/ |- ports.conf |- sites-available/ |- sites-enabled/ Diretórios sites-available e sites-enabled contém configuração dos sites hospedados Diretórios mods-available e mods-enabled contém configuração dos módulos do apache Arquivo ports.conf configura valor das portas TCP Arquivo apache2.conf contém configurações básicas Existem outros arquivos/diretórios, mas estes são os principais 9 Preparação DNS – Em um ambiente normal é preciso configurar o servidor DNS para apontar para o servidor Web – Apesar disso o Apache pode funcionar somente usando o IP do servidor Despois de instalado o Apache já está funcionando – Acesse http://127.0.0.1 – Arquivos de configuração original bem comentados 10 Configuração do Site Padrão (1) O site padrão do Apache espera que as páginas sejam armazenadas em /var/www – Algumas distros usa-se /var/www/html A página inicial padrão pode ser index.html, index.cgi, index.pl, index.php, e index.xhtml – Esta configuração pode ser modificada em /etc/apache2/mods-available/dir.conf Arquivo de configuração do site padrão – /etc/apache2/sites-available/000-default.conf 11 Configuração do Site Padrão (2) Arquivo de configuração do site padrão – /etc/apache2/sites-available/000- default.conf – Informações mais importantes do arquivo – Diretórios dentro do site são acessados indicando o nome na URL: /var/www/teste http://servidor/teste <VirtualHost *> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined </VirtualHost> 12 Outras configurações (1) Escondendo arquivos do diretório – No primeiro acesso, o Apache mostrou o conteúdo do diretório, como em um FTP Página index está ausente Este comportamento não é interessante – Para desabilitar edite o arquivo de configuração do site padrão – Retire a opção Indexes – Reinicie o Apache /etc/init.d/apache2 restart – Mais interessante apenas recarregar as configurações /etc/init.d/apache2 force-reload 13 Outras configurações (2) Trocando de porta – Trocar a porta TCP onde o Apache escuta Padrão é 80 – Edite o arquivo /etc/apache2/ports.conf Para ouvir na porta 8080 adicione a opção Listen 8080 Mais de uma porta pode ser passada – Basta usar várias opções Listen – Para acessar o servidor nesta nova porta via browser basta informar na URL http://127.0.0.1:8080 – Recarregue as configurações /etc/init.d/apache2 force-reload Listen 80 Listen 8080 14 Autenticação simples (1) É possível criar diversos esquemas de autorização para acesso às páginas – Baseado em usuário e senha – Baseado em hosts (Allow from all) Esquema baseado em usuário e senha – Vamos restringir o acesso à /var/www/teste – Criar o arquivo .htaccess em /var/www/teste Configuração do arquivo AuthUserFile /root/pass AuthName "Digite sua senha" AuthType Basic require valid-user 15 Autenticação simples (2) Esquema baseado em usuário e senha – Configure/etc/apache2/sites-available/ 000- default.conf Adicione antes de </VirtualHost> – Crie o arquivo pass em /root Dê permissões de leitura para todos – Defina usuários com o comando htpasswd htpasswd -c /root/pass <usuario> Onde <usuario> pode ser qualquer nome desejado – Recarregue as configurações do Apache /etc/init.d/apache2 force-reload Alias /teste/ "/var/www/teste/" <Directory "/var/www/teste/"> Options Indexes MultiViews FollowSymLinks AllowOverride AuthConfig Order deny,allow Allow from all </Directory> 16 Sites por usuário (1) Cada usuário do Linux pode ter seu próprio site web – Acessado via http://servidor/~user No Ubuntu e Debian – Basta ativar o módulo userdir Comando: a2enmod userdir Para desativar: a2dismod userdir – Configuração do módulo está abaixo Outras distros configura-se httpd.conf como abaixo LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so <IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews SymLinksIfOwnerMatch IncludesNoExec </Directory> </IfModule> 17 Sites por usuário (2) Os usuários devem criar um diretório public_html em seu diretório de usuário – /home/<nome-do-usuario> Deve-se dar permissão de leitura e execução para outros – No diretório do usuário chmod o+rx /home/<nome-do-usuario> – E no public_html chmod o+rx /home/<nome-do-usuario>/public_html Por fim, recarregue as configurações do Apache – /etc/init.d/apache2 force-reload 18 Sites virtuais (1) Apache pode responder por diferentes sites – Cada site em um domínio diferente Vantagem – Configuração centralizada – Uso de um mesmo hardware para atender vários sites Supondo que o servidor fosse responder por www.ifcg.edu.br e www.telem.edu.br Cria-se um site para cada domínio – www.ifcg.edu.br Configuração: /etc/apache2/sites-available/ifcg.conf Arquivos HTML: /var/www/ifcg – www.telem.edu.br Configuração: /etc/apache2/sites-available/tele.conf Arquivos HTML: /var/www/telem 19 Sites virtuais (2) /etc/apache2/sites-available/ifcg.conf /etc/apache2/sites-available/tele.conf <VirtualHost *> ServerAdmin webmaster@ifcg.edu.br Servername www.ifcg.edu.br ServerAlias ifcg.edu.br DocumentRoot /var/www/ifcg ErrorLog /var/logs/apache2/ifcg/error.log CustomLog /var/logs/apache2/ifcg/access.log combined </VirtualHost> <VirtualHost *> ServerAdmin webmaster@telem.edu.br Servername www.telem.edu.br ServerAlias telem.edu.br DocumentRoot /var/www/telem ErrorLog /var/logs/apache2/telem/error.log CustomLog /var/logs/apache2/telem/access.log combined </VirtualHost> 20 Sites virtuais (3) Para habilitar os sites use os comandos – a2ensite ifcg.conf – a2ensite tele.conf O uso destes comandos é interessante – Retirar um site do ar torna-se uma tarefa simples Ex: Provedores de páginas podem suspender seus usuários por falta de pagamento – Scripts podem automatizar tarefas Por fim, recarregue as configurações do Apache – /etc/init.d/apache2 force-reload 21 Sites virtuais (4) Caso deseje que o site virtual telem atenda somente na porta 8080 e o site nassau atenda somente na 80 – Deve-se alterar o arquivo /etc/apache2/ports.conf – E deve-se alterar os arquivos de configuração de cada site /etc/apache2/sites-available/ifcg.conf /etc/apache2/sites-available/tele.conf Listen 80 Listen 8080 <VirtualHost *:80> ServerAdmin webmaster@ifcg.edu.br ... </VirtualHost> <VirtualHost *:8080> ServerAdmin webmaster@telem.edu.br ... </VirtualHost> 22 Suporte a PHP (1) PHP permite a criação de páginas dinâmicas – Estruturas de repetição e decisão – Conexão com banco de dados – Entre outros... Código PHP é inserido no HTML O Apache usa um módulo para se comunicar com o interpretador PHP – Quando um cliente uma página PHP é requisitada Apache repassa a página para o interpretador Interpretador PHP processa o código e devolve página HTML Apache entrega a página para o cliente – Apache funciona como um intermediário entre o cliente e o 23 Suporte a PHP (1) Para habilitar o PHP deve-se – Instalar o interpretador PHP apt-get install php5 – Instalar o módulo PHP do Apache apt-get install libapache2-mod-php5 – Habilitar o uso do módulo a2enmod php5 – Recarregar as configurações do Apache /etc/init.d/apache2 force-reload Para testar crie uma página index.php no site padrão com as seguintes linhas <?php phpinfo(); ?> Servidor Web Administração de Sistemas Abertos Professor: Anderson Costa anderson@ifpb.edu.br
Compartilhar