Laboratório: Servidor Web Apache: mudanças entre as edições
(→Tarefa) |
|||
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 28: | Linha 28: | ||
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. | 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 <ref name=MORIMOTO>MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>. | 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 <ref name=MORIMOTO> MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>. | ||
===Arquivos de configuração=== | ===Arquivos de configuração=== | ||
Linha 84: | Linha 84: | ||
</VirtualHost> | </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. | 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 | ;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: | :Incluir no '''arquivo de configuração''' do site o '''endereço IP''' correspondente e a porta: | ||
<VirtualHost 192.168.40.30:80> | <VirtualHost 192.168.40.30:80> | ||
#Endereço IP e porta de escuta | #Endereço IP específico e porta de escuta | ||
... | ... | ||
</VirtualHost> | </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==== | |||
*[https://sempreupdate.com.br/linux-basico-defina-um-ip-estatico-no-ubuntu-17-10-com-netplan/ '''IP estático''' com '''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. | 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. | ||
Linha 123: | Linha 143: | ||
service apache2 restart | service apache2 restart | ||
===Exercícios=== | |||
Criar '''sites virtuais''' para armazenar no servidor ''' | 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 pelo menos um '''IP alias''' para o site com '''IP específico'''. | ||
*Crie '''arquivos de configuração''' para os | *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 '''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'''. | *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'''. | *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: | *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: | **Edite o arquivo '''/etc/hosts''' e acrescente linhas com o nome dos sites, por exemplo: | ||
192.168.40.30 www.redes30.edu.br | 192.168.40.30 www.redes30.edu.br | ||
; | |||
;Importante: | |||
#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. | |||
#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. | |||
#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). | |||
#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. | |||
#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== | |||
<references /> | |||
---- | ---- |
Edição atual tal como às 19h02min de 29 de outubro de 2018
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 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
- 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.
- 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.
- 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).
- 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.
- 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
--Evandro.cantu (discussão) 10h01min de 22 de outubro de 2018 (BRST)