Laboratório: Servidor Web Apache

De Wiki Cursos IFPR Foz
Revisão de 19h02min de 29 de outubro de 2018 por Evandro.cantu (discussão | contribs) (→‎Tarefa)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegaçãoIr para pesquisar

Laboratório: Servidor Web Apache

Os servidores Web permitem armazenar as páginas Web e disponibilizá-las na Internet.

Um servidor Web bem conhecido é o Apache, disponível como padrão nas versões do Linux e um dos mais utilizados na Internet.

Instalação do apache
Obs: Instalar o lynx na máquina virtual.
sudo apt-get install apache2
Testar se o servidor Web está operando normalmente
  1. Em um navegador coloque no endereço da URL o endereço IP da máquina onde o apache foi instalado;
  2. Se tudo está funcionando, você verá a resposta padrão do apache.
Armazenamento das páginas HTML no servidor apache

As páginas HTML a serem disponibilizadas pelo servidor apache ficam armazenadas do diretório:

/var/www/html
Verificação da página padrão da instalação
cd /var/www/html
ls
cat index.html

Para que o servidor mostre uma página diferente deste padrão de instalação deve ser criada uma nova página index.html.

Configuração do Apache no Ubuntu

O apache é um aplicativo modular e se limita a executar a tarefa de entregar páginas HTML ou outros tipos de arquivos a clientes. Qualquer outra tarefa é executada por módulos externos.

Por exemplo, para acesso a uma página PHP, o servidor apache repassa a requisição para o módulo mod_php, que aciona o interpretador PHP que processa a página e entrega ao apache para este entregar ao cliente [1].

Arquivos de configuração

Os arquivos de configuração do apache também são modulares e estão organizados dentro do diretório /etc/apache2:

/etc/apache2/
|-- apache2.conf
|       `--  ports.conf
|-- mods-available
|       |-- *.load
|       `-- *.conf
|-- conf-available
|       `-- *.conf
`-- sites-available
        `-- *.conf
  • O arquivo apache2.conf contem configurações diversas do servidor;
  • O arquivo ports.conf contem a configuração das portas TCP que o servidor vai escutar;
  • O diretório sites-available contem a configuração dos sites hospedados;
  • O diretório mods-available contem a configuração dos módulos.
  • O diretório conf-available contem a configuração de fragmentos globais do apache.

Sites hospedados

Configuração default
Quando o apache é instalado é criado o arquivo /etc/apache2/sites-available/000-default.conf que contém a configuração de um site padrão. Este site usa o diretório /var/www/html para armazenar as páginas Web, sendo o arquivo index.html a página base do site.
Se o servidor Web vai armazenar um único site, esta configuração é suficiente.

Hospedagem de vários sites

O apache pode armazenar vários sites simultaneamente, cada um representado por um arquivo de configuração no diretório sites-available.

Para cada site cria-se um arquivo de configuração, por exemplo redes30.conf, e armazena o mesmo no diretório sites-available.

O conteúdo do arquivo contém as seguintes informações básicas:

<VirtualHost *:80> 
  #Endereço IP e porta de escuta

  ServerName www.redes30.edu.br
  # O nome de servidor

  ServerAdmin webmaster@redes30.edu.br
  #Administrador do site

  DocumentRoot /var/www/html/redes30
  # Diretório onde estão os documentos desse site

  <Directory /var/www/html/redes30>
    Options Indexes
    DirectoryIndex index.html index.php
    order allow,deny
    allow from all
  </Directory>
  # As restrições de acesso aos documentos
   
</VirtualHost>

Endereços IP dos sites

Para cada site pode ser cadastrado um endereço IP específico ou todos os sites podem compartilhar o mesmo endereço IP da máquina onde está instalado o servidor.

Endereço IP compartilhado
Usar no arquivo de configuração como endereço IP o asterisco (*), como mostrado na configuração exemplo anterior.
<VirtualHost *:80> 
  #Endereço IP compartilhado (*) e porta de escuta
  ... 
</VirtualHost>
Endereço IP específico para cada site
Atribuir para máquina que vai hospedar os sites mais de um endereço IP.
Incluir no arquivo de configuração do site o endereço IP correspondente e a porta:
<VirtualHost 192.168.40.30:80> 
  #Endereço IP específico e porta de escuta
...

</VirtualHost>

Como atribuir mais de um endereço IP a uma máquina

Servidores Linux Ubuntu até versão 17.04
Utilizar comando ifconfig e IP alias.

Ver referência sobre [Rede e Roteamento].

Criar um endereço IP alias para cada site, por exemplo:

ifconfig eth0:0 192.168.40.30 netmask 255.255.248.0
Servidores Linux Ubuntu versões 17.10 e 18.04 LTS
Utilizar comandos netplan.

netplan

Resolução de Nomes (DNS)

Tanto no caso de utilizar endereço IP específico ou endereço IP compartilhado para cada site, um servidor DNS é necessário para resolver o nome do site para ter acesso as páginas Web.

No caso do uso de endereços IP compartilhados, todas as consultas ao servidor DNS, para os vários sites hospedados, vão apontar para o mesmo endereço IP. Neste caso, a mensagem de requisição HTTP, montada pelo cliente, vai incluir o nome do site que o Apache possa fornecer a página correta.
Arquivo /etc/hosts
Para fins de testes, uma alternativa é incluir o nome dos sites que queremos acessar no arquivo /etc/hosts de cada cliente, por exemplo:
192.168.40.30   www.redes30.edu.br

Habilitação dos sites

Para tornar o site disponível, cria-se um link do arquivo de configuração para o diretório sites-enabled, como por exemplo:

ln -s /etc/apache2/sites-available/redes30.conf /etc/apache2/sites-enabled/redes30.conf
Caso se desejar tornar o site indisponível, sem remover a configuração, apenas se apaga o link simbólico.

Os comandos a2ensite e a2dissite ativam e desativam os links de forma automática, por exemplo [1]:

a2ensite redes30.conf
(ativa)
ou
a2dissite redes30.conf
(desativa)

Depois de modificada a configuração, reiniciar o servidor apache:

service apache2 restart

Exercícios

Criar sites virtuais para armazenar no servidor Apache, utilizando IP compartilhados e IP específicos (IP alias). Para tal realize os seguintes procedimentos:

  • Crie pelo menos um IP alias para o site com IP específico.
  • Crie arquivos de configuração para os sites.
  • Crie diretórios para armazenar as páginas dos sites no diretório /var/www/html/.
  • Crie paginas HTML e salve nos diretórios do site correspondente, cada uma com o nome index.html. Pode ser incluído o ambiente desenvolvido para a disciplina de Inglês.
  • Testar o acesso ao servidor Web usando o endereço IP dos sites a partir de um navegador.
  • Para ter acesso as páginas Web a partir do nome do site seria necessário um servidor DNS, entretanto, para fins de teste, podemos incluir o nome dos sites que queremos acessar no arquivo /etc/hosts, para tal:
    • Edite o arquivo /etc/hosts e acrescente linhas com o nome dos sites, por exemplo:
192.168.40.30   www.redes30.edu.br
Importante
  1. Para não haver conflito de endereços IP entre as diversas equipes, utilizar a rede 192.168.40.0/21 e utilizar faixas específicas de IP para cada grupo.
  2. Compartilhar entre os grupos os endereços IP e nomes dos sites para testar acesso aos servidores dos demais colegas.

Tarefa

Faça um relatório detalhando os passos para instalação do servidor Web usando como referência os roteiros dos laboratórios realizados sobre o Servidor Apache.

  1. Inclua no relatório a configuração de rede do Servidor Web através da impressão de telas da configuração de rede do servidor (ifconfig), de testes conectividade com outras máquinas (ping).
  2. Inclua no relatório a impressão dos arquivos de configuração do servidor Web e uma listagem dos diretórios onde as páginas Web estão armazenadas.
  3. Inclua também impressão de telas ilustrando o acesso ao servidor Web a partir de navegadores em outras máquinas do laboratório.

Referências

  1. 1,0 1,1 MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.

--Evandro.cantu (discussão) 10h01min de 22 de outubro de 2018 (BRST)