Buscar

16 Servidor Apache

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando