Eu preciso testar subdomínios no meu localhost. Como posso ter efetivamente esse resultado de adicionar *.localhost.com
ao meu /etc/hosts/
arquivo?
Se não for possível, como resolvo esse problema? Eu preciso testar subdomínios curinga no meu servidor local. É um devserver Django, o servidor Django dev pode lidar com os subdomínios? Algum outro software/roteamento pode me dar o resultado final que eu quero?
Instale o dnsmasq (eu faço isso em todos os meus desktops Linux como um cache DNS de qualquer maneira). Em
dnsmasq.conf
adicione a linha:Não é possível especificar curingas no
/etc/hosts
arquivo. Especifique explicitamente os nomes de host necessários ou, alternativamente, configure um servidor de nomes local com as regras apropriadas.Eu escrevi um proxy dns em Python. Ele lerá entradas curinga em /etc/hosts. Veja aqui: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py
Você precisa configurar um servidor DNS e fazer com que cada cliente o use para resolução. O próprio servidor pode ser algo tão "leve" quanto dnsmasq ou tão pesado quanto BIND .
Fluxo de trabalho simples (sem necessidade de instalar nada)
Eu pessoalmente gosto de criar um arquivo PAC para isso e fazer meu navegador apenas usá-lo.
Passo 1: crie um arquivo, por exemplo:
*.proxy.pac*
em algum lugar (eu uso minha$home
pasta)Passo 2: cole este código (exemplo é com a porta 8000):
Etapa 3 : Faça seu navegador usar este arquivo PAC.
Vídeo do Youtube para PAC e Firefox
Passo 4 : Agora você pode testar seu aplicativo acessando:
http://mysubdomain.localhost/
Passo 5: Aproveite :)
Arrumei um projeto antigo meu:
https://github.com/airtonix/avahi-aliases
requisitos:
Vantagens sobre o uso do dnsmasq ou do proxy dns python:
Você não pode usar um curinga em
/etc/hosts
.Dê uma olhada aqui para um bom passo a passo sobre como realizar no OS X usando o BIND, o servidor DNS integrado, mas inativo, e o Apache.
Esta solução baseada em DNS funcionou perfeitamente no meu caso, sem necessidade de instalar nada: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)
Se você quiser usar
dnsmasq
com você pode (ou mesmoNetworkManager
deve?) começardnsmasq
adicionandoNetworkManager
para
/etc/NetworkManager/NetworkManager.conf
. Em seguida, a configuração do dnsmasq vai para/etc/NetworkManager/dnsmasq.conf
ou/etc/NetworkManager/dnsmasq.d/
resp.Copiando deste blog aqui está como fazer isso no mac:
https://hedichaibi.com/how-to-setup-wildcard-dev-domains-with-dnsmasq-on-a-mac/