Eu tenho um servidor web em execução na minha máquina local e quando executo uma solicitação cURL usando o endereço localhost
, ele executa muito rápido. No entanto, quando eu adiciono um / etc / hosts como
127.0.0.1 test.local
e, em seguida, execute a mesma solicitação cURL:
curl -I http://test.local:3002/images/logo.png
atrasos para um sólido 2-3 segundos. Alterar a solicitação cURL de volta para localhost
novamente não gera atrasos.
Isso é reproduzível a cada momento.
Eu tentei executar a solicitação lenta em dtruss
para ver se consigo encontrar uma chamada de sistema que esteja causando o atraso. Nada fora do comum aparece.
Eu tentei criar um serviço simulado via netcat
, que retorna apenas HTTP/1.0 200 OK
, para que eu possa garantir que o problema não se deve ao meu servidor da web. Mais uma vez, nenhuma diferença: localhost
é rápido como seria de esperar e test.local
atrasos.
Neste ponto, acho que há algum problema de DNS. Isto é, /etc/hosts
NÃO está sendo consultado primeiro, ou seja, meu DNS upstream está sendo verificado, o que falha, então /etc/hosts
está sendo consultado, o que finalmente funciona.
Isso é possível? O OS X Lion
de alguma forma está consultando meu /etc/hosts
mais tarde na cadeia de resolução?