web-dev-qa-db-fra.com

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

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

Si je le laisse intact pendant quelques minutes et que je le recharge à nouveau, le premier rechargement est (encore) péniblement lent; semble que quelque chose est mis 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 que j'ai 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 nomutilisateur.conf: 

NameVirtualHost *:80

<Directory "/Users/myusername/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Users/myusername/Dropbox/dev_envs/
</VirtualHost>
<VirtualHost *:80>
    ServerName myproject.dev
    DocumentRoot /Users/myusername/Dropbox/dev_envs/myprojectname
</VirtualHost>
87
Adam Gries

J'ai eu exactement le même problème et ça me rendait dingue!

Mettez toutes les entrées de votre 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. On dirait un bug dans Lion.

144
Jeremy Dunn

Il existe un autre problème 10.7. * À 10.8.4 pour les sites se terminant par ".local", ce qui provoque des recherches de cinq secondes. Détails et solution avec la permission de Bram (us) 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 ajouter 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
61
Cleverlemming

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

Étrangement, 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 pris une éternité, comme une minute à peu près. Si je l'utilisais à nouveau dans les 5 secondes environ, c'était très rapide, mais beaucoup plus long et cela prendrait encore une minute. J'avais soupçonné toutes sortes de choses, connexions mysql, versions Ruby, bugs Rails, Apache, Phusion Passenger. Jusqu'au moment où j'ai enfin regardé la console et réalisé que des recherches de DNS étaient tentées.

Alors, je les ai tous mis sur des lignes distinctes:

127.0.0.1 localhost

127.0.0.1 myproject.dev

127.0.0.1 myotherproject.dev

Et soudain, tout redevint vif. Idem sur mes deux machines.

24
Flemming Funch

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
12
Aram

Assurez-vous de mettre les entrées IP v6 pas 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 décalages reviennent. Ils pourraient cependant être basés sur d'autres raisons.

8
user902664

Sur OSX El Capitan, ce qui a fonctionné pour moi a été de dupliquer une entrée IPv6 juste au-dessus de celle d’IPv4, comme

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

S'assurer que les noms d'hôtes sont définis au début du fichier a fait toute 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.

3
Erik

J'ai eu le même problème et je l'ai trouvé causé par l'activation d'IPv6 sur mon réseau local, mais je n'avais pas configuré IPv6 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) au client pour constater que le DNS IPv6 était inaccessible ou manquant, puis pour revenir au DNS IPv4.

1

J'ai eu le même problème et j'ai finalement réalisé que j'avais la même entrée d'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 deuxième instance du même hôte (dans l'exemple ci-dessus - Host1) - et les choses ont immédiatement accéléré.

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

1
Aaron

Remarque: J'utilise Windows et XAMPP. Toutefois, lors de la recherche du problème, de nombreuses personnes ont rencontré le même problème sous Windows et Mac. Répondez pour référence à 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 au même problème, notamment en plaçant tous les hôtes sur une seule ligne, en supprimant les hôtes redondants et les virtualhosts et en incluant les lignes IPv6 - aucune de ces seules n'a abouti. 

La seule solution qui a jusqu'à présent semble fonctionner pour moi est une 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 jusqu'à présent, 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 à ajouter, veuillez le faire - cela semble être un problème qui touche beaucoup de gens sans cause ni solution connue.

0
Robert Deniszczyc

Le truc qui l’a fait pour moi a été d’ajouter

127.0.0.1 locahost

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

Parmi tous mes hôtes virtuels, seuls ceux utilisant une base de données étaient lents. Je pense que c’est parce que le processus de recherche de «localhost» pour la connexion à la base de données a ralenti, puisque j’ai ajouté les adresses de mes hôtes virtuels et non pas «localhost». Maintenant, tout est à nouveau vif. :)

0
D. Marti

Je suis aussi tombé dessus. J'ai un groupe 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 de la liste l'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
0
Alex Dunae