Você está na página 1de 14

Redes de computadores II

Profa Joana Darc Sousa


joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

1. Servidores Web
Qualquer pessoa que utiliza a internet, seja para acessar um site, conferir e-mails ou interagir em
uma rede social, está interagindo, de alguma forma, com um servidor web. Chamado originalmente
de web server, em inglês, ele é o responsável por responder a todas as solicitações feitas para um
endereço na internet.
O protocolo HTTP(S) atua como o protocolo de comunicação da Web, permitindo que os
navegadores possam solicitar diferentes tipos de conteúdos pela Internet.
O servidor web é o coração de qualquer empresa de hospedagem de sites. Sem ele, a internet como
a conhecemos provavelmente não existiria.
Ao acessar um site na internet, o navegador (Chrome, Firefox, Edge…) se comunica com o
servidor, solicitando e recebendo os dados da página em questão. Como mencionado, o servidor
físico possui programas específicos para responder ao tipo de solicitação realizada. No caso de um
site, esta solicitação é feita através de um protocolo conhecido como HTTP.

1.2. O que é um Servidor Web?


Podemos definir um Servidor Web como um computador com uma série de mecanismos capazes
de:
1. Receber requisições HTTP dos clientes,
2. Processar as requisições uma a uma,
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

3. Retornar uma resposta HTTP aos clientes.


Apesar de poucas etapas, o processamento muitas vezes pode ser algo simples, como o conteúdo de
uma imagem, ou algo complexo como uma busca em um conjunto de bases de dados com milhares
de registros.

1.2.1.Diferenciando servidor web... de servidor web!


De maneira simplificada, podemos dizer que um servidor web é um computador que hospeda um ou
mais sites/aplicações na internet. No entanto, o termo servidor web pode se referir tanto ao
equipamento físico (hardware) quanto ao programa (software) contido neste equipamento. Também
é comum encontrar o termo se referindo a ambos os casos (hardware e software).
A diferenciação entre um servidor equipamento e um servidor programa será feita baseada no
contexto no qual a expressão é utilizada. Vamos entender a seguir como identificar cada caso.

1.2.2. Servidor Web – Equipamento:


Um site é composto por um compilado de arquivos digitais que são interpretados pelo navegador e
exibidos na tela de um computador/dispositivo. Para que possa ser acessado por qualquer pessoa, os
arquivos de um site precisam estar armazenados em algum lugar. Mais precisamente, em um
computador que esteja ligado à internet 24 horas por dia. Este computador é conhecido como
Servidor Web.
Um servidor possui componentes internos semelhantes aos encontrados em um computador pessoal,
como por exemplo um HD, memória RAM placa mãe, etc. Entretanto, sua arquitetura é otimizada
para a tarefa de ser um servidor.

1.2.2.1 Torre e Rack


Os servidores do tipo equipamento físico são encontrados em duas formas diferentes: os de torre e
os de rack. Durante anos, os servidores do tipo torre eram o padrão. No entanto, com o aumento da
demanda e com a criação dos grandes Data Centers, os servidores do tipo rack se tornaram muito
mais populares. A razão é a alta capacidade de expansão que o formato rack proporciona, já que é
possível agrupar e interligar, em uma única coluna de rack, dezenas de servidores.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

Assim como em um computador pessoal, um servidor web possui um sistema operacional e


diversos programas podem ser instalados nele. Isso inclui programas específicos para executar
determinadas tarefas, como enviar páginas de um site pela internet, enviar e receber e-mails,
armazenar e fornecer arquivos, entre outras. A esses programas, também atribuímos o nome de
servidor web, como veremos mais adiante.

1.2.3. Servidor Web – Programa


Ao acessar um site na internet, o navegador (Chrome, Firefox, Edge...) se comunica com o servidor,
solicitando e recebendo os dados da página em questão. Como mencionado, o servidor físico possui
programas específicos para responder ao tipo de solicitação realizada. No caso de um site, esta
solicitação é feita através de um protocolo conhecido como HTTP (protocolo de transferência de
hiper-texto, da sigla em inglês). Todos os sites na internet trafegam utilizando este protocolo (ou sua
versão segura, conhecida como HTTPS . Assim, existem programas específicos para responder à
solicitações do tipo HTTP. Este tipo de programa também é conhecido como servidor web.
Para outras solicitações, diferentes tipos de servidor web são utilizados, como por exemplo, para o
envio e recebimento de e-mails. Um servidor web que envia e recebe e-mails pode ser instalado no
mesmo computador (servidor) utilizado para requisições HTTP.
Servidor HTTP – envia os arquivos que compõem um site.
Servidor FTP – realiza upload e download de arquivos entre computadores e servidores.
Servidor de E-mail – envia, recebe e armazena e-mails.
Servidor de Banco de dados – armazena dados em uma estrutura específica.

Assim, quando requisitamos uma página na internet, o pedido será enviado para o servidor que
contém os arquivos do site em questão. Quando a requisição chega no servidor, o software nele
contido se responsabilizará por processar as informações solicitadas e responder de acordo.
Um servidor web pode receber solicitações e enviar arquivos para milhares de usuários
simultaneamente ou em um curto espaço de tempo.
1.3.Tipos de Servidor Web
Existem diversos tipos de servidor web disponíveis no mercado, incluindo softwares pagos e
gratuitos. Entre os mais populares, podemos citar o Apache, o Nginx e o Microsoft IIS como os
mais usados atualmente. Segundo dados do W3 Techs de julho de 2017, o Apache é o líder, sendo
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

utilizado em 49% de todos os sites na internet. Ele é seguido pelo Nginx, presente em 34% dos
sites, e pelo IIS, da Microsoft, presente em 11% dos sites. Dos três, apenas o produto da Microsoft é
pago, sendo os demais gratuitos e de código aberto.
Todos estes tipos de servidores web possuem diferenças entre si, mas é importante saber que eles
são usados para propósitos semelhantes, que é o de servir conteúdo baseado em requisições do tipo
HTTP.
1.3.1. Sistema Operacional
Quanto ao sistema operacional, embora existam vários, geralmente encontramos dois tipos de SO
em servidores web: Linux ou Windows. Os servidores Linux estão presentes na maior parte dos web
servers do mundo. Servidores Microsoft são utilizados apenas em cenários que dependem de
aplicações baseadas em tecnologias da Microsoft, como por exemplo, sites e sistemas que utilizam a
linguagem ASP.NET. Enquanto 66% dos sites na internet estão em servidores com sistema
operacional derivado do Unix, apenas 33% rodam o Windows IIS (fonte).

1.3.2. Servidores web e hospedagem de sites


Servidores web geralmente são oferecidos como parte de um pacote de serviços, notadamente o de
hospedagem de sites. Nos tipos de hospedagem de sites mais populares (compartilhada, VPS,
dedicada, revenda e cloud) o servidor web é oferecido como parte inerente ao produto. Da mesma
forma, o usuário deste tipo de sede serviço também terá, frequentemente, o serviço de FTP, banco
de dados, linguagem de programação, entre outros, incluídos na prestação do serviço. Para definir o
tipo de hospedagem necessário em cada caso, muitos fatores devem ser levados em consideração,
como o objetivo, o tipo do site (se dinâmico ou estático), a audiência, entre outros.

1.4. Servidor HTTP e Tipos de Conteúdos

Podemos dividir os tipos de conteúdos em duas categorias principais:


Conteúdos Estáticos: são arquivos que não necessitam de nenhum tipo de processamento do
servidor, bastando que o processo apenas leia e retorne uma cópia do mesmo para o cliente (Ex:
arquivos de imagens, CSS, JS, HTML, PDF, ZIP).
Conteúdos Dinâmicos: são conteúdos que demandam algum tipo de processamento para retornar o
conteúdo. Uma pesquisa, por exemplo, necessita que haja uma busca em um banco de dados e que a
resposta seja construída de acordo com a requisição.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

Geralmente no segundo caso, o servidor HTTP irá invocar a execução de algum código escrito em
alguma linguagem de programação (Ex: PHP, Python, Javascript) seja na mesma máquina ou em
um Servidor de Aplicação externo e este será responsável por realizar toda a carga de trabalho
necessária. Nas aulas futuras iremos abordar com mais detalhes como esses outros mecanismos
funcionam.
1.5. Arquitetura da Web na vida real
Até o momento, tratamos o Servidor Web como uma instância simples que é executada em uma
única máquina. No entanto, isso nem sempre é verdade. Grandes websites precisam lidar com
problemas de disponibilidade e performance em alta escala e isso, muitas vezes, demanda uma
arquitetura muito maior do que um simples servidor HTTP.
Caso você queira se aprofundar mais no tema, recomendamos a video aula do link a seguir. Nela,
você poderá entender um pouco melhor sobre a arquitetura e funcionamento de serviços que
precisam lidar com uma grande quantidade de requisições, assim como citar outros intermediários
que podem estar inseridos entre o cliente e o servidor final.

1.6. Apache HTTP Server


O projeto Apache é um servidor web criado em 1995 e é, desde então, um dos servidores mais
utilizados para a hospedagem de websites . O core da sua aplicação é bastante enxuto e focado
principalmente na tarefa de buscar e transmitir os dados requisitados via HTTP. No entanto, graças
a uma grande comunidade de desenvolvedores e a sua arquitetura que permite a integração de
módulos externos, ele se tornou uma ferramenta poderosa e muita utilizada ainda hoje. Uma das
vantagens do Apache é a sua alta integração com outros projetos Open Source como o PHP e o
MySQL. O uso dessas tecnologias em conjunto é muito comum e recomendada como porta de
entrada para aqueles que querem saber mais sobre desenvolvimento web. Há diversos projetos que
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

permitem a instalação dos três de maneira rápida, permitindo a criação de um servidor web local em
conjunto com um banco de dados (ex: XAMP, WAMP, LAMP).

Para saber mais sobre, veja os seguintes links:


1. An Introduction to Apache (https://code.tutsplus.com/tutorials/an-introduction-to-apache--net-
25786)

2. How Does PHP Work With The Web Server And Browser?
(https://stillat.com/blog/2014/04/02/how-does-php-work-with-the-web-server-and-browser)

3. Apache tutorial (https://www.guru99.com/apache.html)


Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

INSTALANDO E CONFIGURANDO O SERVIDOR APACHE

Descompactar o Apache
Agora vamos descompactar o arquivo que fizemos o download. Nesse caso, temos que
descompactar em um diretório raiz do sistema. Por isso, vamos descompactar dentro de “C:\
Apache24”.

Extract Apache

Configurando o Apache no Windows


Agora vamos entrar no diretório que descompactamos dentro do arquivo de instalação do APACHE
neste caso é o diretório “C:\Apache24\Apache24”.

Apache directory
Dessa forma, para alterar o diretório raiz do apache, vamos para o diretório “conf” dentro da página
Apache24.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

httpd.conf
Em seguida vamos editar o arquivo, abrindo com o bloco de notas. Depois vamos procurar a linha
“Define SRVROOT” e vamos inserir o caminho correto da pasta Apache24.
(Nota) O caminho não pode ter caracteres como “.”.

Root path

Instalando o apache como serviço no Windows


Vamos abrir um terminal no Windows. Para isso vamos acessar o menu iniciar e digitar “cmd “ no
canto inferior esquerdo.

cmd
Em seguida vamos escolher a opção de executar o terminal como administrador.
(Nota) Alternativamente, você pode criar uma conta separada com os privilégios necessários para o
APACHE. No entanto estamos partindo para uma instalação básica.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

cmd como administrator


Vamos copiar o caminho do diretório do Apache e vamos inserir o comando “cd” e colar o caminho
do diretório do Apache no terminal .
cd C:\Apache24

Apache root directory


Agora, vamos entrar no diretório “bin”. Dessa forma, poderemos executar o arquivo “httpd”.
cd bin

Apache bin directory


Dentro do diretório “bin”, vamos digitar o comando abaixo.
httpd -k install

Esse comando, “httpd -k install”, instala o Apache como serviço. Dessa forma podemos operar o
apache como outros serviços do windows.
A figura abaixo mostra que a instalação ocorreu corretamente.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

Apache successfully installed

Permitindo acesso no Windows Defender Firewall


A figura abaixo mostra que estamos permitindo acesso ao apache na rede interna e externa. Para
isso estamos garantindo permissão no Windows Defender Firewall.

Allow access to Apache on Windows Defender Firewall

Inicializando o serviço Apache


Agora vamos no menu iniciar e vamos digitar service e vamos escolher o gerenciador de serviços.

service
Dentro do gerenciador de serviços, vamos procurar por Apache. Em seguida vamos clicar com o
botão direito do mouse e vamos clicar em inciar.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

start Apache2.4 service

Testando o Apache no Windows


Agora vamos abrir um navegador e vamos testar o nosso apache.
Para isso podemos inserir um IP de loopback como o 127.0.0.1.

A figura abaixo demonstra que o apache está funcionando corretamente e está expondo a página
inicial.
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

Habilitar Host Virtual


Nenhum diretório do Apache abra o arquivo /conf/httpd.conf. Procure por Include
conf/extra/httpd-vhosts.confe deixei a linha habilitada (sem o #no início da linha).
A linha deve ficar dessa forma:
# Hosts virtuais
incluem conf/extra/httpd-vhosts.conf

Criar host virtual


Nenhum diretório do Apache abra o arquivo /conf/extra/https-vhosts.conf.
Adicione o seguinte trecho de código no final do arquivo:
<VirtualHost *:80>
DocumentRoot C:\Apache24\htdocs\meu-projeto
ServerName meuprojeto.local
</VirtualHost>

Substitua DocumentRootpelo destino do seu projeto. Observe que o caminho deve


apontar para o diretório com o arquivo principal de sua aplicação. Caso
você index.phpesteja dentro de um subdiretório public, então seu caminho seria C:\
Apache24\htdocs\meu-projeto\public.
Substitua ServerNamepelo domínio que você deseja acessar seu projeto localmente.
Seu arquivo deverá ser semelhante ao código abaixo:
# Hosts Virtuais
#
# Módulos necessários: mod_log_config# Se você deseja manter vários domínios/nomes
de host em sua
# máquina, você pode configurar contêineres VirtualHost para eles. A maioria das
configurações
# usa apenas hosts virtuais baseados em nomes, portanto o servidor não precisa se
preocupar com
# endereços IP. Isto é indicado pelos asteriscos nas diretivas abaixo.
#
# Consulte a documentação em
# <URL: http://httpd.apache.org/docs/2.4/vhosts/ >
# para obter mais detalhes antes de tentar configurar hosts virtuais.
#
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

# Você pode usar a opção de linha de comando '-S' para verificar


a configuração do seu host virtual #.#
# Exemplo de VirtualHost:
# Quase qualquer diretiva Apache pode entrar em um contêiner VirtualHost.
# A primeira seção VirtualHost é usada para todas as solicitações que não
# correspondem a um ServerName ou ServerAlias em qualquer bloco <VirtualHost>.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example .com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" comum
</VirtualHost><VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example .com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" comum
</VirtualHost>

# Virtual Host para meu projeto de redes


<VirtualHost *:80>
DocumentRoot C:\Apache24\htdocs\meu-projeto
ServerName meuprojeto.redes
</VirtualHost>

Após alterar as configurações, reinicie o Apache.

Configurar host sem janelas


Abra o arquivo C:\Windows\System32\drivers\etc\hosts. Você deverá encontrar a seguinte
linha ao final do arquivo:
127.0.0.1 host local

Adicione uma nova linha para seu host virtual:


127.0.0.1 localhost
127.0.0.1 meuprojeto.redes
Redes de computadores II
Profa Joana Darc Sousa
joanadlosousa@gmail.com
Servidor web
_______________________________________________________________________________

Teste
Abra seu navegador e digite http://meuprojeto.redes. Se tudo foi configurado corretamente
você deverá acessar o seu projeto que antes era acessível somente
em http://localhost/meu-projeto.redes

Você também pode gostar