Você está na página 1de 18

Programao para Internet I

1. Servidores web

Nuno Miguel Gil Fonseca


nuno.fonseca@estgoh.ipc.pt
Servidores web
 Quando pretendemos aceder a uma pgina web,
utilizamos um browser, independentemente da
plataforma de hardware/software, o processo
desenrola-se sempre do mesmo modo

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 2
Servidores web
 O que importa saber sobre os web servers? (cont)
 Na prtica um web server no mais do que um
servidor de ficheiros, em que pedido um ficheiro que
ser devolvido caso exista.
 Exemplos de web servers
 Apache HTTP Server (http://httpd.apache.org/)
 Lighttpd server (http://www.lighttpd.net/)
 Microsoft IIS (Internet Information Service)
 Nesta disciplina iremos optar pelo Apache HTTP Server.
 Depois de o instalar, basta utilizar um browser para
aceder a http://localhost/ ou
http://127.0.0.1.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 3
Servidores web
 O que importa saber sobre os web servers? (cont)
 Os web servers podem ser configurados ao nosso gosto
para melhor se adaptarem s nossas reais necessidades
 No caso do Apache, as configuraes so feitas num
ficheiro de texto: httpd.conf que se encontra na
directoria:
 C:\Program Files\Apache Software Foundation\Apache2.2\conf
 Importa referir que para as alteraes feitas neste
ficheiro terem efeito, necessrio fazer Restart (ou
Stop + Start) do web server.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 4
Servidores web
 O que importa saber sobre os web servers?
 possvel ter mais do que um web server a correr
na mesma mquina, no entanto tm que estar
escuta de portos diferentes.
 Por defeito: 80
 Para outros web servers: 8080 ou outros
 Para alterar o porto basta alterar no ficheiro httpd.conf a seguinte
linha:
Listen 80

 Ateno: Este porto s dever ser alterado se for efectivamente


necessrio!

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 5
Servidores web
 O que importa saber sobre os web servers?
 necessrio definir um root directory no disco rgido
do servidor, que ir corresponder directoria raz do
site.
 Por exemplo, se para o site www.abcd.pt definirmos como root
directory c:\myweb\files\, quando a estamos a aceder a
www.abcd.pt, na verdade estamos a tentar obter ficheiros que se
encontram na directoria c:\myweb\files\.
 Por defeito a root directory do web server Apache :
 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
 Para alterar a root directory basta alterar no ficheiro httpd.conf a
seguinte linha:

ServerRoot C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 6
Servidores web
 O que importa saber sobre os web servers? (cont)
 Como sabido, sempre que se acede a uma pgina
web faz-se o pedido de um ficheiro, no entanto, em
alguns casos possvel omitir o nome desse ficheiro;
 Por exemplo, ao acedermos a www.abcd.pt no estamos a indicar
o nome de nenhum ficheiro, assim sendo, ir ser devolvido, caso
exista, um ficheiro com um default file: index.html,
default.htm, etc.
 O utilizador poder adicionar outros default files, como por
exemplo index.htm, omeuficheiro.html, etc.
 Para tal, basta procurar no ficheiro httpd.conf a seguinte linha e
adicionar os ficheiros que pretender. Eles sero acedidos pela
ordem indicada
DirectoryIndex index.html index.htm
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 7
Servidores web
 O que importa saber sobre os web servers? (cont)
 Ento e se no existir nenhum default file na
directoria a que estamos a aceder?
 Nesse caso, poder acontecer uma de duas coisas:
 Ser apresentada uma listagem de todos os ficheiros e directorias que se
encontram na directoria indicada. Para tal acontecer, o web server dever
estar configurado para permitir directory listing.

 Ser apresentada uma mensagem de erro.


(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 8
Servidores web
 O que importa saber sobre os web servers? (cont)
 Ento e se no existir nenhum default file na
directoria a que estamos a aceder?
 Nesse caso, poder acontecer uma de duas coisas:
 Ser apresentada uma mensagem de erro (403 Forbidden).
 Para activar directory listing no Apache, basta fazer:
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs">
...
Options Indexes FollowSymLinks
...
</Directory>

 Nota: por defeito, esta opo j vem activada, para a desactivar, basta remover a
palavra Indexes

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 9
Servidores web
 O que importa saber sobre os web servers? (cont)
 Num servidor de produo conveniente que esteja
definido um endereo de email de contacto do
administrador do servidor para poder ser contactado
em caso de erro
 Esse endereo de email pode ser modificado a
qualquer momento, bastando para tal alterar a
seguinte linha no ficheiro httpd.conf.
ServerAdmin ze@xpto.com

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 10
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Deste modo, possvel verificar que erros ocorreram,
onde/quando/a quem ocorreram e tentar solucionar o
problema
 Por defeito, os logs so guardados na directoria
 C:\Program Files\Apache Software Foundation\Apache2.2\logs
 Para alterar o nome\localizao do ficheiro de logs de erro,
basta alterar a seguinte linha

ErrorLog "log/error.log"

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 11
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Um dos ficheiros de log mais importantes o
ficheiro de acesso (access.log). Em que
registada informao sobre todos os acessos ao
servidor.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 12
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Consoante a fase de maturidade do servidor, podemos alterar o
nvel de produo de logs que pretendemos:
LogLevel warn

 Outros valores possveis so: debug, info, notice,


error, crit, alert, emerg.
 Consoante a situao podemos definir diferentes formatos para o
ficheiro de logs de acesso.
LogFormat ...formato... nomedoformato
 Opes para o formato: http://www.loganalyzer.net/log-
analyzer/apache-custom-log.html
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 13
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Para indicar o nome/localizao do ficheiro de logs de acesso,
assim como o formato a ser utilizado, procedemos da seguinte
maneira

CustomLog "logs/access.log" nomedoformato

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 14
Servidores web
 O que importa saber sobre os web servers? (cont)
 Documentos de erro personalizados
 possvel definir ficheiros (x)HTML personalizados que sero
apresentados em caso de erro

ErrorDocument 404 /erro404.html

 Nota: no prximo captulo sero apresentados todos os cdigos


de erro.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 15
Servidores web
 O que importa saber sobre os web servers? (cont)
 possvel adicionar mdulos a um web server
 Exemplos: PHP, SSL, etc.
 Para tal, basta adicionar no ficheiro httpd.conf uma linha
semelhante seguinte
LoadModule nome_do_modulo

 Caso seja um mdulo que no faa parte da distribuio


normal do Apache, temos que garantir que o ficheiro
correspondente a esse mdulo existe
 Para desactivar o uso de um mdulo, basta retirar a linha
correspondente, ou em alternativa, comentar (colocar um # no
inicio da linha)

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 16
Servidores web
 Configuraes personalizadas para uma directoria
 At ao momento temos visto essencialmente
configuraes gerais para o servidor
 No entanto possvel aplicar determinadas
configuraes a directorias em especfico
<Directory directoria>
...
configuraes
...
</Directory>

<Directory /> <Directory /testes/test1>


... ...
configuraes configuraes
... ...
</Directory> </Directory>

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 17
Servidores web
 Configuraes personalizadas para uma directoria
 As configuraes possveis so inmeras, devendo
como bvio ser feitas com o devido cuidado

 Para mais informaes sobre a configurao do


servidor Apache:
 http://httpd.apache.org/docs/2.2/configuring.html

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gesto de Oliveira do Hospital - Programao para Internet I 18