Comment puis-je éliminer la résolution / le chargement lent de localhost / virtualhost (un décalage de 2-3 secondes) sur Mac OS X Lion?

Depuis la mise en place de mes environnements de développement sur Mac OS X Lion (tout nouveau macbook air acheté en janvier 2012), j’ai constaté que la résolution d’un hôte virtuel était très lente (environ 3 secondes) la première fois, mais rapide Je continue à le charger régulièrement.

Si je le laisse intact pendant quelques minutes et que je le recharge ensuite, le premier rechargement est (encore) douloureusement lent; semble que quelque chose est en cours de mise en cache.

Comme on peut le voir ci-dessous, je n’utilise pas le TLD .local.

Ma configuration: Apache 2 – MySQL – PHP installé et activé – a ajouté quelques hôtes virtuels dont l’un a été créé pour localhost

Mon / etc / hosts:

127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 127.0.0.1 myproject.dev ::1 myproject.dev fe80::1%lo0 myproject.dev 

Mon hôte virtuel configuré dans username.conf:

 NameVirtualHost *:80  Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all   ServerName localhost DocumentRoot /Users/myusername/Dropbox/dev_envs/   ServerName myproject.dev DocumentRoot /Users/myusername/Dropbox/dev_envs/myprojectname  

J’ai eu exactement le même problème et ça m’a rendu fou!

Placez toutes vos entrées de fichier hosts pour localhost sur une seule ligne, comme ceci:

 127.0.0.1 localhost myproject.dev myotherproject.dev ::1 localhost fe80::1%lo0 localhost 

A fonctionné à merveille pour moi. Semble un bug dans Lion.

Il y a un autre problème 10.7. * À 10.8.4 pour les sites se terminant par “.local” qui provoque des recherches de cinq secondes. Détails et solution avec la permission de Bram (nous) Van Damme au lien suivant:

http://www.bram.us/2011/12/12/mamp-pro-slow-name-resolving-with-local-vhosts-in-lion-fix/

“Par défaut, tout nom d’hôte se terminant par .local est traité comme un hôte Bonjour plutôt que d’interroger les entrées du serveur DNS dans les préférences réseau.

Pour résoudre ce problème (sans avoir à renommer chaque vhost), vous devez append des entrées IPv6 pour chacun de vos vhosts dans votre fichier / etc / hosts: ”

 ::1 mysite.local fe80::1%lo0 mysite.local 127.0.0.1 mysite.local 

J’ai eu le même problème, aussi sur Lion.

Curieusement, ma solution était à l’opposé de celle de Jeremy. J’ai eu tout un tas d’entrées someproject.dev sur une seule ligne dans / etc / hosts. Charger un site sur l’un d’entre eux la première fois a duré une minute. Si je l’utilisais à nouveau dans les 5 secondes, c’était très rapide, mais beaucoup plus long et cela prendrait encore une minute. J’avais suspecté toutes sortes de choses, des connexions mysql, des versions Ruby, des bogues Rails, Apache, Phusion Passenger. Jusqu’à ce que j’aie enfin regardé la console et réalisé que des recherches DNS étaient en cours.

Alors, je les mets tous sur des lignes séparées:

 127.0.0.1 localhost 127.0.0.1 myproject.dev 127.0.0.1 myotherproject.dev 

Et soudain, tout était à nouveau vif. Même chose sur mes deux machines.

Spécifier le même hôte pour IPv6 :: 1 m’a aidé.

 127.0.0.1 something.local.mydomain.org ::1 something.local.mydomain.org 

Assurez-vous de ne pas mettre les entrées IP v6 dans la ligne avec localhost

 ::1 localhost 

les entrées IP v6 vont dans une ligne séparée

 fe80::1%lo0 here and_here 

C’est parfois très rapide maintenant, mais il y a de rares exceptions où les vieux retards reviennent. Ils pourraient toutefois être basés sur d’autres raisons.

Sur OSX El Capitan, ce qui a fonctionné pour moi était de créer une entrée IPv6 en double au-dessus de l’entrée IPv4 comme ça.

 fe80::1%lo0 demo.test.dev 127.0.0.1 demo.test.dev 

S’assurer que les noms d’hôte sont définis au début du fichier a fait la différence pour moi. Par défaut, la ligne 127.0.0.1 localhost est déjà au début, ajoutez simplement vos entrées sur la même ligne.

J’ai eu le même problème et j’ai constaté que cela était dû à l’activation d’IPv6 sur mon réseau local, mais que IPv6 n’était pas configuré correctement entre mon réseau et mon fournisseur de services Internet. Apparemment, le serveur DNS IPv6 a priorité sur le DNS IPv4 lorsque le client reçoit les deux. Il a fallu quelques secondes (à chaque tentative) pour que le client trouve que le DNS IPv6 était inaccessible ou manquant, puis qu’il revenait au DNS IPv4.

J’ai eu le même problème et j’ai finalement réalisé que j’avais la même entrée hôte deux fois sur la même ligne:

par exemple

 127.0.0.1 localhost host1 host2 host3 host4 host5 host1 host6 

J’ai supprimé la seconde instance du même hôte (dans l’exemple ci-dessus – host1) – et les choses se sont rapidement accélérées.

Je me suis senti un peu bête quand j’ai découvert cela, mais quand vous avez 10 noms d’hôte long sur la même ligne et que vous ajoutez / supprimez fréquemment, cela peut être négligé.

Le truc qui l’a fait pour moi ajoutait

 127.0.0.1 locahost 

sur la première ligne du fichier hôte.

De tous mes hôtes virtuels, seuls ceux utilisant une firebase database étaient lents. Je crois que c’est parce que le processus de recherche de “localhost” pour la connexion à la firebase database a ralenti les choses, car je n’ai ajouté que les adresses pour mes hôtes virtuels et non pas “localhost”. Maintenant, tout est à nouveau rapide. 🙂

J’ai aussi rencontré ça. J’ai un tas de vhosts définis sur deux lignes, une pour IPv4 et une pour IPv6. Déplacer l’hôte que j’essayais de résoudre pour être le premier dans la liste a accéléré.

 127.0.0.1 faster.example.dev host1.example.dev host2.example.dev host3.example.dev host4.example.dev host5.example.dev host6.example.dev ::1 faster.example.dev host1.example.dev host2.example.dev host3.example.dev host4.example.dev host5.example.dev host6.example.dev 

Remarque: J’utilise Windows et XAMPP, mais lors de la recherche du problème, de nombreuses personnes ont rencontré le même problème sous Windows et Mac. Réponse pour référence pour quiconque trouve cette question car j’ai passé des heures à essayer de trouver une solution qui fonctionne pour moi:

J’ai essayé de nombreuses solutions pour le même problème, notamment en mettant tous les hôtes sur une seule ligne, en supprimant les hôtes et les hôtes virtuels redondants et en incluant les lignes IPv6.

La seule solution qui a jusqu’ici semblé fonctionner pour moi est la combinaison de toutes les solutions:

  • Changer le domaine que j’utilise de mysite. local à mysite. dev . Inspiré par la réponse de @ Cleverlemming.
  • Y compris les lignes IPv6.
  • Suppression des hôtes virtuels et hôtes redondants (je les ai commentés).

Dans mon fichier hosts, mes hôtes sont actuellement sur des lignes séparées et le problème semble être résolu.

Bonne chance à tous ceux qui tentent de résoudre ce problème et si quelqu’un a des informations à append, faites-le. Cela semble être un problème qui affecte beaucoup de personnes sans cause ou solution unique.

Dans mon cas, le ralentissement était dû au fait que certaines des entrées de / etc / hosts n’étaient plus utilisées dans mes hôtes virtuels.