Arquivo hosts (/etc/hosts)

Este artigo é uma breve explicação do funcionamento do arquivo /etc/hosts.

O arquivo hosts pode ser utilizado para diversos fins, no caso do desenvolvimento, ele pode nos interessar enquanto ajudar a configurar uma Virtual Host. Ao desenvolver um sistema nos deparamos com dois ambientes: o de desenvolvimento e o de produção. Sempre haverá um esforço para tentar igualar ao máximo os dois ambientes, criar uma Virtual Host é um desses esforços. A configuração do Virtual Host não depende do arquivo hosts, tanto que é considerado como um passo opcional. Ele nos ajuda a fazer o redirecionamento de uma determinada URL, portanto, compreender o funcionamento do arquivo hosts se faz necessário.

Este artigo é uma breve explicação do que é, como funciona e para que serve o arquivo hosts (considerando o Linux como sistema operacional). Para ajudar a entendê-lo, seria bom você ter uma noção do que é um número IP, noção do que é uma Virtual Host e ter instalado um servidor web no Linux. Na verdade, o público alvo deste artigo são aqueles desenvolvedores que possuem alguma experiência e estão tentando configurar uma Virtual Host (com o apoio do arquivo hosts) para equiparar o ambiente de desenvolvimento com o de produção.

O arquivo hosts presente em sistemas operacionais Linux, Windows e Mac's, tem a função de mapear um nome para um endereço IP. Normalmente, é utilizado em conjunto com uma Virtual Host para configurar um ambiente de desenvolvimento, porém ele pode ser usado para diversos fins. Quando criamos uma Virtual Host, podemos ou não configurar o redirecionamento de URL's (domínios), fazemos isso através do DNS. O arquivo hosts pode ajudar simplificando o trabalho, pois é bem mais fácil configurá-lo do que configurar o DNS. Se você estava criando uma VIrutal Host e, de repente, se perguntou "o que é e como funciona o arquivo hosts? " este artigo é para você.

O arquivo hosts é uma das facilidades existentes no endereçamento de redes dentro de um computador. Faz parte da implementação do protocolo de internet e serve na tradução de um nome compreensível para os seres humanos em um endereço IP. Alguns sistemas operacionais utilizam o arquivo hosts como método preferencial de resolução de nomes ao invés de outros métodos como o DNS, por exemplo. Ao contrário do DNS, o arquivo hosts permite o controle direto do administrador local de um computador. (wikipedia)

Inicialmente, ele contém um único mapeamento:

127.0.0.1   localhost

No exemplo acima, quando você digitar em seu navegador web localhost ele resolverá o nome para o IP 127.0.0.1. Este é o endereço da sua máquina local, também chamado de loopback (não confundir com o o endereço IP da sua máquina na rede).

O arquivo hosts aceita o sinal de #(sharp) para comentários e possui o seguinte formato.

IP Address       Hostname            Alias

O alias é opcional. Abaixo, vemos outro exemplo de arquivo hosts.

127.0.0.1       localhost           localmente
192.168.0.1     www.foo.com.br      foo

Quando digitarmos o endereço www.foo.com.br ele resolverá o nome para o IP 192.168.0.1.

Para visualizar o seu arquivo hosts execute no terminal cat /etc/hosts.

Você pode testar o funcionamento através de um navegador web ou através do utilitário curl. Digitar localhost no navegador ou curl localhost no terminal surtirá o mesmo efeito. Obviamente, no terminal você verá texto puro, enquanto que no navegador você verá a interpretação visual do mesmo. Se o curl estiver instalado, experimente no terminal....

curl localhost
curl 127.0.0.1

Se você utiliza Virtual Host para cada projeto, seu arquivo hosts deve ser parecido com o abaixo.

127.0.0.1       localhost
127.0.0.1       www.app1.dev
127.0.0.1       www.app2.dev
127.0.0.1       www.app3.dev

Todos os endereços apontam para 127.0.0.1, portanto, o redirecionamento para as devidas pastas de cada projeto deve ser realizada e configurada através do Virtual Host.

Você pode utilizar o nome exato de seu domínio. Imaginando que ele seja, por exemplo, www.foo.com.br, você poderá incluir em seu arquivo hosts a seguinte linha.

127.0.0.1       www.foo.com.br

Essa abordagem não permitirá a você acessar o endereço www.foo.com.br na web, pois ele aponta para sua máquina local. Mas, e se você quiser voltar a acessá-lo normalmente? Você terá que modificar o arquivo. Para evitar isso, você poderá utilizar nomes semelhantes, como por exemplo:

www.foo
www.foo.dev
foo.dev

Chegamos ao fim do artigo, achou o que estava procurando?

Faltou alguma informação?

Alguma parte ficou mal redigida?

Posso melhorar o artigo de alguma forma? Deixe seu feedback, é muito importante!

Veja também

Virtual Hosts (sites virtuais) é um recurso que permite servir mais de um site no mesmo servidor. Podem ser usadas diretivas específicas para o controle do site virtual, como nome do administrador, erros de acesso a página, controle de acesso e outros dados úteis para personalizar e gerenciar o site.

Leia mais no artigo Apache - Configurando Virtual Hosts

Comentários

comments powered by Disqus