Odkąd skonfigurowałem moje środowiska programistyczne w systemie Mac OS X Lion (zupełnie nowy Macbook Air zakupiony w styczniu 2012 r.), Zauważyłem, że przejście do hosta wirtualnego jest bardzo powolne (około 3 sekundy) za pierwszym razem, ale potem jest szybkie, o ile Ciągle go ładuję.
Jeśli pozostawię go nietkniętego na kilka minut, a następnie załaduję ponownie, pierwsze przeładowanie będzie (znowu) boleśnie powolne; wygląda na to, że coś jest w pamięci podręcznej.
Jak widać poniżej, nie używam .local TLD.
Moja konfiguracja: Apache 2 - MySQL - PHP zainstalowane i włączone - dodałem kilka wirtualnych hostów, z których jeden utworzyłem dla localhost
Mój / 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
Konfiguracja mojego wirtualnego hosta w username.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>
Odpowiedzi:
Miałem dokładnie ten sam problem i doprowadzał mnie to do szału!
Umieść wszystkie wpisy plików hosts dla localhost w jednej linii, jak na przykład:
U mnie zadziałało jak urok. Wygląda na błąd w Lionie.
źródło
W przypadku witryn kończących się na „.local” występuje inny problem od 10.7. * Do 10.8.4, który powoduje pięciosekundowe wyszukiwania. Szczegóły i rozwiązanie dzięki uprzejmości Brama (us) Van Damme pod następującym linkiem:
http://www.bram.us/2011/12/12/mamp-pro-slow-name-resolving-with-local-vhosts-in-lion-fix/
„Domyślnie każda nazwa hosta kończąca się na .local jest traktowana jako host Bonjour, a nie przez wysyłanie zapytań do wpisów serwera DNS w preferencjach sieci.
Aby rozwiązać ten problem (bez konieczności zmiany nazwy każdego vhosta), musisz dodać wpisy IPv6 dla każdego z twoich vhostów w pliku / etc / hosts: "
źródło
.local
, a dodanie obu wpisów IPV4 / 6 naprawiło wszystko dla mnie (OS X 10.9)::1
jest to odpowiednik skrótu IPv6127.0.0.1
. Ale co tofe80::1%lo0
znaczy? - ah,Miałem ten sam problem, także z Lionem.
O dziwo, moje rozwiązanie było przeciwieństwem rozwiązania Jeremy'ego. W jednym wierszu w / etc / hosts znajdowałem się cała masa wpisów typu projekt.dev. Załadowanie witryny na którymkolwiek z nich trwało wieczność, około minuty. Gdybym użył go ponownie w ciągu około 5 sekund, był bardzo szybki, ale znacznie dłuższy i ponownie zająłby minutę. Podejrzewałem różne rzeczy, połączenia mysql, wersje Ruby, błędy w Railsach, Apache, Phusion Passenger. Aż w końcu spojrzałem na konsolę i nie zdałem sobie sprawy, że próbowano wyszukiwać DNS.
Więc umieściłem je wszystkie w osobnych wierszach:
I nagle wszystko znów było żwawe. To samo na obu moich komputerach.
źródło
Pomogło mi określenie tego samego hosta dla IPv6 :: 1.
źródło
Upewnij się, że wpisy IP v6 nie znajdują się w wierszu z localhost
wpisy IP v6 są umieszczane w osobnym wierszu
Czasami jest teraz naprawdę szybki, ale są rzadkie wyjątki, w których stare opóźnienia powracają. Mogą jednak mieć inne przyczyny.
źródło
Na OSX El Capitan to, co zadziałało, to utworzenie zduplikowanego wpisu IPv6 tuż nad wpisem IPv4
źródło
Zapewnienie, że nazwy hostów są zdefiniowane na początku pliku, zrobiło dla mnie różnicę. Domyślnie wiersz 127.0.0.1 localhost znajduje się już na początku, po prostu dodaj swoje wpisy w tej samej linii.
źródło
Miałem ten sam problem i stwierdziłem, że jest on spowodowany włączeniem protokołu IPv6 w mojej sieci LAN, ale nieprawidłowym skonfigurowaniem protokołu IPv6 między moją siecią a dostawcą Internetu. Najwyraźniej serwer DNS IPv6 ma pierwszeństwo przed DNS IPv4, gdy klient ma oba. Po kilku sekundach (przy każdej próbie) klient stwierdził, że serwer DNS IPv6 jest nieosiągalny lub go brakuje, a następnie wrócił do serwera DNS IPv4.
źródło
Uwaga: używam systemu Windows i XAMPP, jednak podczas badania problemu wiele osób miało ten sam problem w systemach Windows i Mac. Odpowiedź w celach informacyjnych dla każdego, kto znalazł to pytanie, ponieważ spędziłem godziny, próbując znaleźć rozwiązanie, które będzie dla mnie odpowiednie:
Wypróbowałem wiele rozwiązań tego samego problemu, w tym umieszczenie wszystkich hostów w jednej linii, usunięcie nadmiarowych hostów i wirtualnych hostów, a także włączenie linii IPv6 - żadne z nich nie zakończyło się sukcesem.
Jedynym rozwiązaniem, które do tej pory wydawało mi się działać, jest połączenie wszystkich rozwiązań:
W moim pliku hosts moje hosty są obecnie w osobnych wierszach i jak dotąd problem wydaje się być rozwiązany.
Powodzenia dla każdego, kto próbuje rozwiązać ten problem, a jeśli ktoś ma jakieś informacje do dodania, zrób to - wydaje się, że problem dotyczył wielu ludzi bez jednej znanej przyczyny ani rozwiązania.
źródło
Miałem ten sam problem i w końcu zdałem sobie sprawę, że mam ten sam wpis hosta dwa razy w tej samej linii:
na przykład
Usunąłem drugą instancję tego samego hosta (w powyższym przykładzie - host1) - i wszystko natychmiast przyspieszyło.
Czułem się trochę głupio, kiedy to odkryłem, ale kiedy masz 10 długich nazw hostów w tej samej linii i często dodajesz / usuwasz, można to łatwo przeoczyć.
źródło
Sztuczka, która mi to zrobiła, polegała na dodaniu
w pierwszym wierszu pliku hosta.
Ze wszystkich moich wirtualnych hostów tylko te korzystające z bazy danych działały wolno. Wydaje mi się, że dzieje się tak dlatego, że proces wyszukiwania „localhost” dla połączenia z bazą danych spowolnił wszystko, ponieważ dodałem tylko adresy moich wirtualnych hostów, a nie również „localhost”. Teraz znów jest żwawo. :)
źródło
Ja też na to wpadłem. Mam kilka vhostów zdefiniowanych w dwóch wierszach, jedną dla IPv4 i jedną dla IPv6. Przeniesienie hosta, który próbowałem znaleźć na pierwszym miejscu na liście, przyspieszyło to.
źródło
Głupi problem, który zmarnował trochę czasu: po zastosowaniu odpowiedzi @ Cleverlemming stwierdziłem, że w pliku hosts są zduplikowane wpisy. Coś jak:
Następnie rozwiązanie IP dla site3.local i site4.local zabiera te 5 sekund śmierci.
źródło