Uma opção é configurar seu próprio servidor DNS e aplicar alterações com as atualizações DNS dinâmico . Você provavelmente ainda precisará limpar os caches DNS do navegador devido a DNS pinning . Se você usa um proxy, o DNS é a responsabilidade do proxy (com exceção dos problemas de pré-busca de DNS no Chrome), portanto, um proxy é a solução mais limpa.
Existem dois proxies HTTP que podem fazer isso:
-
O Fiddler tem substituições de arquivos de hosts: link
Porém, ele é executado apenas no Windows - mas como é um proxy HTTP completo, ele pode ser usado em outros sistemas conforme o esperado.
-
O Charles proxy tem capacidade de falsificação de DNS: link
Este é provavelmente um melhor ajuste, é multi-plataforma, incluindo Mac OS.
O violinista é gratuito, Charles não, embora tenha um período de tempo limitado.
No Chrome, você pode inspecionar e limpar o cache do DNS com facilidade: chrome://net-internals/#dns
Não acredito que exista uma forma de extensão para substituir o DNS (embora ele possa fazer pesquisas de DNS).
Com um plug-in de navegador com alternância de proxy, você pode alternar sites ativando ou alternando o proxy.
Para completar, há dois possíveis problemas com essa abordagem: cookies e cache . Os cookies de estado ou de autenticação em um servidor podem não funcionar no outro. Novo conteúdo no seu site de teste pode não aparecer porque não expirou, isso depende das configurações de armazenamento em cache no servidor e no conteúdo. Limpar o cache do navegador e os cookies devem fazer o truque se isso ocorrer.
Você também pode ter o problema oposto de que o conteúdo não seja armazenado em cache conforme o esperado, pois os servidores da Web possuem cabeçalhos Etag
diferentes para o mesmo conteúdo estático. Isso geralmente não causa um grande problema, embora possa ser sinalizado em relatórios de desempenho.
Já que sua abordagem manual atual de troca de DNS também sofrerá o problema acima, eles provavelmente não são um problema para você, ou você já teria notado; -)
(Quando possível eu prefiro usar uma abordagem alternativa para todo o problema que é normalmente mais limpa: adicione aliases de host virtual de "dev-www" "prod-www" "teste-www" etc., embora isso às vezes tenha próprias complicações.)