Virtual Hosts João Medeiros ([email protected]) 1 / 12 Servidores Virtuais Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes <VirtualHost> Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Uma pessoa pode ser conhecida por muitos nomes Um servidor WEB também No Apache, cada identidade é identificada pela diretiva Dependendo do nome usado para acessar o servidor WEB, o apache vai responder de forma apropiada Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências 2 / 12 Tipos de servidores virtuais Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Baseado em IPs Associado com um endereço de IP (tal como um número de telefone) Baseado em nomes Vários nomes estão associados a um mesmo IP. Necessário um servidor de nomes para realizar a tarefa de associar nomes Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências 3 / 12 Configurando um servidor virtual baseado em nomes Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Situação: Você tem apenas um endereço de IP, mas deseja hospedar mais de um Web site no seu servidor Substitua web1 por um nome a sua escolha Configurando um servidor virtual baseado em IPs ServerName 127.0.0.1 NameVirtualHost *:80 <VirtualHost *:80> ServerName web1.lab4.fatern DocumentRoot "/home/sites/web1" </VirtualHost> Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências Crie o arquivo /etc/apache2/sites-available/web1 com o conteúdo Execute os comandos no servidor # a2ensite web1 # /etc/init.d/apache2 reload 4 / 12 Configurando um servidor virtual baseado em nomes Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em IPs Crie o diretório /home/sites/web1 e acrescente algum conteúdo lá # mkdir -p /home/sites/web1 Solicite ao administrador do servidor DNS (no caso o professor) para criar a entrada respectiva Teste se o site está funcionando acessando o endereço web1.lab4.fatern Configurando um servidor virtual baseado em IPs Observações Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências O *:80 acima indica que os hosts especificados irão ser executados em todos os endereços. Isso permite que se acesse o site principal via localhost Requisições que não são direcionadas a nenhum dos servidores virtuais em particular irão para o primeiro host listado nos arquivos de configuração 5 / 12 Configurando um servidor virtual baseado em IPs Servidores Virtuais Tipos de servidores virtuais Crie hosts virtuais com as seguintes entradas, substitua os IPs pelos apropriados Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências ServerName 127.0.0.1 <VirtualHost 192.168.0.230> ServerName web1.lab4.fatern DocumentRoot "/home/sites/web1" </VirtualHost> ServerName 127.0.0.1 <VirtualHost 192.168.0.231> ServerName web2.lab4.fatern DocumentRoot "/home/sites/web2" </VirtualHost> 6 / 12 Configurando um servidor virtual baseado em IPs Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Adicione um IP adicional na máquina com os comandos # ifconfig eth0:1 192.168.0.179 # route add -host 192.168.0.179 eth0:1 Se quiser deixar essa modificação permanente, coloque os comandos no final do script /etc/rc.local Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências 7 / 12 Separando os arquivos de log para cada servidor virtual Servidores Virtuais Tipos de servidores virtuais Acrescente as diretivas ErrorLog e CustomLog para cada servidor virtual Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências ServerName 127.0.0.1 NameVirtualHost *:80 <VirtualHost *:80> ServerName web1.lab4.fatern DocumentRoot "/home/sites/web1" ErrorLog "/home/sites/logs/web1/error_log" CustomLog "/home/sites/logs/web1/access_log combined" </VirtualHost> Observe que é interessante gravar os logs fora do diretório de acesso das páginas, isso evita que visitantes do site possam ter acesso aos logs 8 / 12 Servidores virtuais baseados em portas Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Em algumas situações, quando não temos IPs dispoı́veis nem como adicionar novas entradas no servidor DNS podemos hospedar vários sites num mesmo servidor usando portas diferentes. Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências Listen 8080 <VirtualHost 192.168.0.230:8080> DocumentRoot "/home/sites/web1" /VirtualHost> Listen 9090 <VirtualHost 192.168.0.230:9090> DocumentRoot "/home/sites/web2" /VirtualHost> 9 / 12 Exibindo o mesmo conteúdo em vários endereços Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Uilizado normalmente quando temos um mesmo servidor WEB numa empresa com duas redes: uma interna para a intranet e outra externa para a internet NameVirtualHost 192.168.0.200:80 NameVirtualHost 172.20.30.40:80 <VirtualHost 192.168.0.200:80 172.20.30.40:80> DocumentRoot /var/sites/server ServerName fatern.edu.br ServerAlias fatern </VirtualHost> Referências 10 / 12 Exercı́cios Servidores Virtuais Tipos de servidores virtuais Configurando um servidor virtual baseado em nomes Configurando um servidor virtual baseado em nomes 1 Imagine que você recebeu a incumbência de preparar a estrutura para dois sites de duas empresas que serão hospedados num mesmo servidor. 1.1 Configurando um servidor virtual baseado em IPs Configurando um servidor virtual baseado em IPs Separando os arquivos de log para cada servidor virtual Servidores virtuais baseados em portas Exibindo o mesmo conteúdo em vários endereços Referências 1.2 1.3 Configure o Apache criando dois servidores virtuais, um para cada empresa, definindo o diretório onde as páginas serão colocadas. Configure também os diretórios onde os arquivos de logs serão gravados. Prepare um procedimento com todos os passos necessários para a preparação do ambiente. Inclua todos os comandos efetuados e as requisições que você deve fazer ao administrador do DNS. 2 Prepare o mesmo ambiente acima mas agora configure o apache servir as páginas das duas empresas em portas diferentes. Elabore também um relatório das atividades realizadas. 3 Junto com os relatórios, envie também os arquivos que você criou/editou. 11 / 12 Referências [1] http://httpd.apache.org/docs/2.2/vhosts/name-based.html 12 / 12