Laboratório: Servidor Web Apache
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
- Em um navegador coloque no endereço da URL o endereço IP da máquina onde o apache foi instalado;
- 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 específico para cada site
- Criar um endereço IP alias para cada site, por exemplo:
ifconfig eth0:0 192.168.40.30 netmask 255.255.252.0
- 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 e porta de escuta ... </VirtualHost>
- Endereço IP compartilhado
- Usar no arquivo de configuração como endereço IP o asterisco (*), como mostrado na configuração exemplo anterior.
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 para dois sites e IP específicos (IP alias) para um site. 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 três 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.
- 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
- Dicas
- Para não haver conflito de endereços IP entre as diversas equipes, utilizar a rede 192.168.40.0/22 e utilizar faixas específicas de IP para cada grupo.
- Compartilhar entre os grupos os endereços IP e nomes dos sites para testar acesso aos servidores dos demais colegas.
--Evandro.cantu (discussão) 10h01min de 22 de outubro de 2018 (BRST)