Mac OS X Lion'da localhost / virtualhost'un yavaş çözümlenmesini / yüklenmesini (2-3 saniyelik gecikme) nasıl ortadan kaldırabilirim?


97

Geliştirme ortamlarımı Mac OS X Lion'da (Ocak 2012'de satın alınan yepyeni macbook air) kurduğumdan beri, bir sanal ana bilgisayara çözümlemenin ilk seferde çok yavaş olduğunu (yaklaşık 3 saniye) fark ettim, ancak ondan sonra hızlı Düzenli olarak yüklemeye devam ediyorum.

Birkaç dakika dokunmadan bırakırsam ve sonra tekrar yüklersem, ilk yeniden yükleme (tekrar) acı verici bir şekilde yavaş; bir şey önbelleğe alınmış gibi görünüyor.

Aşağıda görülebileceği gibi .local TLD kullanmıyorum.

Kurulumum: Apache 2 - MySQL - PHP yüklendi ve etkinleştirildi - birini localhost için oluşturduğum birkaç sanal ana bilgisayar ekledi

/ Etc / hostsm:

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

Username.conf içindeki sanal ana bilgisayar kurulumum:

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>

Bu stackoverflow.com/questions/19313546/… buldum . ve benim için çalışıyor !!!
clark yu

2
Bunu apple rdar: // 24237290'a bir hata olarak bildirdim ve şu komik yanıtı aldım:> Mühendislik, bu sorunla ilgili aşağıdaki geri bildirimi sağladı:> Bu, maks. No. / etc / hosts dosyasında 10'dan fazla takma ada izin veriliyor. / etc / hosts dosyasında 10'dan fazla takma ada sahip olmak pek pratik görünmüyor. Daha fazla insan bu hatayı rapor ederse ve onlara bu cevabın tamamen saçma olduğunu (ve hiçbir yerde belgelenmemiş) söylerse memnuniyet duyarım.
dwt

.Local TLD'yi kullanmanın kötü bir tarafı var mı?
Yaakov Ainspan

Yanıtlar:


171

Bende de aynı sorun vardı ve bu beni çılgına çeviriyordu!

Localhost için tüm ana bilgisayar dosya girişlerinizi şöyle bir satıra koyun:

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

Benim için bir cazibe gibi çalıştı. Lion'da bir böcek gibi görünüyor.


Bu işe yarıyor ve bence @ adam-gries bunu cevap olarak işaretlemeli. Teşekkürler Jeremy!
zysoft

5
Bu sabit benim için çalıştı, ancak 11 site sınırına ulaştım, ardından daha da yavaş çalışmaya başladı! Şimdilik, her şeyi iki ana bilgisayar girişine ayırdım (aynı IP adresiyle) ve iyi gidiyor gibi görünüyor.
Alex Ghiculescu

@AlexGhiculescu ile aynı sorun ve çözüm, ancak OS X 10.8 Mountain Lion'da.
chrishiestand

2
OS X 10.9, hala bir sorun ve saatlerdir beni deli ediyor! Harika, harika cevap için teşekkürler!
robertp

2
Bu yalnızca, ana bilgisayar girişlerini diğer localhost aygıt yönlendirmesinden ÖNCE girdiğiniz için çalışır. Web sunucunuz 127.0.0.1'e bakıyorsa, bu ana bilgisayarların hızlı aramalar için / etc / hosts dosyasının HEAD konumunda olması gerekir. Birkaç düzine 127.0.0.1 satırım var, ancak onları / etc / hosts dosyasının TOP kısmına taşıdığımda benim için hızlı bir şekilde çözüldü.
Joey T

71

".Local" ile biten siteler için 10.7. * İle 10.8.4 arasında değişen ve beş saniyelik aramalara neden olan başka bir sorun var. Ayrıntılar ve çözüm, aşağıdaki bağlantıda Bram (bize) Van Damme tarafından sağlanmıştır:

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

"Varsayılan olarak, .local ile biten herhangi bir ana bilgisayar adı, Ağ tercihlerindeki DNS sunucusu girişlerini sorgulamak yerine bir Bonjour ana bilgisayarı olarak kabul edilir.

Bu sorunu çözmek için (her sankonuzu yeniden adlandırmanıza gerek kalmadan) / etc / hosts dosyanızdaki sankonlarınızın her biri için IPv6 girişleri eklemeniz gerekir: "

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

Bu aynı zamanda Windows sistemlerini de etkiler. Çözüm orada da bir cazibe gibi çalışıyor.
ToBe

Ana bilgisayarları yerel bir VM'ye yönlendirirken bu sorunu yaşamaya devam ettim. Ana bilgisayarlar dosyasını güzel biçimlendirilmiş (kendi satırlarındaki girişler vb.) Bıraktım ve sanal makineden IPV6 adresini kullanarak ek girişler ekledim ve tüm gecikme sorunlarım ortadan kalktı. Bununla sadece biten sitelerle karşılaştım .localve her iki IPV4 / 6 girişini eklemek benim için her şeyi düzeltti (OS X 10.9)
Justin

Bununla biraz mücadele etmeliydim çünkü "Paylaşma" tercih bölmesindeki ana bilgisayar adım / etc / hosts dosyasında girdiğimle eşleşmiyordu, sadece herhangi birine yardımcı olabilir diye ...
abhishekmukherg

Vay. Bunun ::1IPv6 kısayolunun karşılığı olduğunu anlıyorum 127.0.0.1. Ama ne anlama fe80::1%lo0geliyor? - ah, cevap superuser.com/questions/241642/…
AlexChaffee

macOS Sierra'da bu işe yaradı, ancak ilk satırı kaldırmak zorunda kaldım.
Bryce York

24

Lion'da da aynı sorunu yaşadım.

Garip bir şekilde, benim çözümüm Jeremy'ninkinin tam tersiydi. / Etc / hosts içindeki bir satırda bir sürü someproject.dev girdim vardı. Bunlardan herhangi birine bir sitenin yüklenmesi ilk kez, bir dakika kadar uzun sürdü. 5 saniye içinde tekrar kullanırsam çok hızlıydı, ancak çok daha uzun ve yine bir dakika sürecekti. Her türlü şeyden, mysql bağlantılarından, Ruby sürümlerinden, Rails hatalarından, Apache'den, Phusion Passenger'dan şüphelenmiştim. Sonunda Konsola bakana ve DNS aramalarının yapılmaya çalışıldığını fark edene kadar.

Ben de hepsini ayrı satırlara yazıyorum:

127.0.0.1 localhost

127.0.0.1 myproject.dev

127.0.0.1 myotherproject.dev

Ve aniden her şey yeniden canlandı. Her iki makinemde de aynı.


Burada stackoverflow'da bir şey denedim ama bu ve user902664'ün gönderisi yardımcı oldu. Tüm IPv4 ve IPv6 hatları tek satırda olmalıdır. Yalnızca IPv4 girişlerini ayrı satırlarda kullanıyorsanız, 30 saniyeden ~ 1'e, ayrı satırlarda IPv6 ayarlarıyla birlikte kullanıldığında ~ 0,5 saniyeye düşürüldü.
tomis

Bu çılgınca bir böcek gibi görünüyor. 14 takma ada sahip 192.168.56.3 adres için bir giriş yaptım. Bir diğer adı kaldırın ve ana bilgisayarları <1s içinde çözebilirsiniz. 14. takma adla, listedeki ilk birkaç girişi çözmek ~ 30 saniye sürer ...
Brian M. Carr

Bu, OSX'e özel bir hata mı? Herhangi biri bir hata raporuna bağlanabilir mi?
pje

Ağ yapılandırması hakkında istediğimden çok daha fazlasını öğrenmek için saatler harcadım. Dalmak ve yerel bir DNS sunucusu kurmak üzereydim ve sonra bu onu düzeltti. Teşekkür ederim. Mavericks 10.9.5 burada.
beceriksizler

13

IPv6 :: 1 için aynı ana bilgisayarı belirtmek bana yardımcı oldu.

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

Evet ve satır başına bir alan adı.
warvariuc

1
Bu benim için sorunu çözdü. En azından benim durumumda, satır başına sadece bir alana ihtiyaç yoktu.
jeff-h

9

IP v6 girişlerini localhost ile aynı hizaya koymadığınızdan emin olun.

::1 localhost

IP v6 girişleri ayrı bir satıra gider

fe80::1%lo0 here and_here

Bazen şimdi gerçekten hızlıdır, ancak eski gecikmelerin geri geldiği nadir istisnalar vardır. Ancak başka nedenlere dayanıyor olabilirler.


1
Bu benim için OS X 10.11.6'da işe yaradı - localhost IPv4 girişini (127.0.0.1 için tek satır) aynı takma adlara sahip bir :: 1 satırına kopyaladığım anda, aramalar 4-5 saniyeden anında başladı. Ayrıca, :: 2 olarak çoğalttığım bir 127.0.0.2 girdim vardı. Adres başına tek bir satırım var. Teşekkürler!
RichVel

7

OSX El Capitan'da benim için işe yarayan şey, IPv4 girişinin hemen üzerinde yinelenen bir IPv6 girişi yapmaktı.

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

Kabul edildi, aynı takma ad listesine sahip olduğu sürece IPv4'ün üstünde veya altında IPv6 girişi ile çalışır.
RichVel

Bu saçma, ancak Chrome'un laradock docker konteynerlerime localhost bağlantılarını çözmede gerçekten yavaş olmasıyla yaşadığım sorunu çözdü (Safari her zaman iyi olmuştur)
jeff-h

High Sierra için de çalışıyor - Firefox, Safari onunla veya onsuz çalışıyor
Chris Athanasiadis

3

Dosyanın başında host isimlerinin tanımlanmasını sağlamak benim için fark yarattı. Varsayılan olarak 127.0.0.1 localhost satırı zaten başlangıçtadır, sadece girişlerinizi aynı satıra ekleyin.


Bu gerçek çözüm, geri kalan her şeyi denedi ve tek bir satırdaki referanslarla veya IPv6 rotasına bağlı hiçbir ilgisi yok (apache conf ...'deki birincil rotanız bu değilse) teşekkürler @Erik!
Joey T

Ayrıca bu benim için 2 veya 3 saniyeden çok daha fazla, 10 ila 20 saniye gibi. Çok sayıda 127.0.0.1 girdim vardı, ancak tümü OS X'in varsayılan localhost yapılandırmasından SONRA listelendi. Önemli olursa ML'de değil de Lion'tayım.
Joey T

Ne yazık ki, bu artık Mavericks ile çalışmıyor - birkaç ay önce Mavs'a yükseltme yapana kadar iyi çalıştığı için burada Lion için ek oyumu bırakıyorum.
Joey T

1

Aynı sorunu yaşadım ve bunun LAN'ımda IPv6'nın etkinleştirilmesinden kaynaklandığını, ancak ağım ve ISS'm arasında IPv6'nın doğru şekilde yapılandırılmamasından kaynaklandığını gördüm. Görünüşe göre IPv6 DNS sunucusu, istemciye her ikisi de verildiğinde IPv4 DNS'e göre önceliklidir. İstemcinin IPv6 DNS'nin erişilemez veya eksik olduğunu bulması ve ardından IPv4 DNS'ye geri dönmesi birkaç saniye sürdü (her denemede).


1

Not: Windows ve XAMPP kullanıyorum, ancak sorunu araştırırken birçok kişi Windows ve Mac'te aynı sorunu yaşadı. Benim için işe yarayan bir çözüm bulmak için saatler harcadığımdan, bu soruyu bulan herkes için referans olarak yanıtlayın:

Aynı sorun için tüm ana bilgisayarları tek bir hatta koymak, yedekli ana bilgisayarları ve sanal ana bilgisayarları kaldırmak ve ayrıca IPv6 hatlarını da içeren birçok çözüm denedim - bunların hiçbiri tek başına başarılı olmadı.

Şimdiye kadar sahip olan tek çözüm benim için işe , tüm çözümlerin birleşimidir:

  • Benim sitemden kullandığım alan adını değiştiriyorum. mysite yerel . dev . İlham veren@ Cleverlemming'in cevabından .
  • IPv6 hatları dahil.
  • Yedekli sanal ana bilgisayarları ve ana bilgisayarları kaldırma (onları yorumladım).

Ana bilgisayarlar dosyamda, ana bilgisayarlarım şu anda ayrı satırlarda ve şu ana kadar sorun çözülmüş görünüyor.

Bu sorunu çözmeye çalışan herkese iyi şanslar ve herhangi birinin ekleyeceği bir bilgi varsa lütfen bunu yapın - bu, bilinen tek bir nedeni veya çözümü olmayan pek çok kişiyi etkileyen bir sorun gibi görünüyor.


1

Aynı sorunu yaşadım ve sonunda aynı satırda iki kez aynı ana bilgisayar girişine sahip olduğumu fark ettim:

Örneğin

127.0.0.1 localhost host1 host2 host3 host4 host5 host1 host6

Aynı ana bilgisayarın ikinci örneğini kaldırdım (yukarıdaki örnekte - ana bilgisayar1) - ve işler hemen hızlandı.

Bunu keşfettiğimde biraz aptalca hissettim, ancak aynı satırda 10 uzun ana bilgisayar adı varsa ve sık sık ekleyip çıkarırken, kolayca gözden kaçabilir.


0

Bunu benim için yapan numara eklemekti

127.0.0.1 locahost

ana bilgisayar dosyasının ilk satırında.

Tüm sanal ana makinelerimden yalnızca veritabanı kullananlar yavaştı. Bunun nedeni, veritabanı bağlantısı için "localhost" arama sürecinin işleri yavaşlattığına inanıyorum, çünkü "localhost" değil, yalnızca sanal ana makinelerim için adresler ekledim. Şimdi her şey yeniden canlandı. :)


Orada localhost için iki tanımım vardı; biri daha iyi görünüyor.
Aaron Brick

0

Ben de bununla karşılaştım. Biri IPv4 ve diğeri IPv6 için olmak üzere iki satırda tanımlanmış bir sürü sankonum var. Çözmeye çalıştığım ana bilgisayarı listede ilk sıraya taşımak onu hızlandırdı.

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

Zaman kaybetmeme neden olan aptalca bir sorun: @ Cleverlemming'in cevabını uyguladıktan sonra , hosts dosyasında yinelenen girişler olduğunu anladım. Gibi bir şey:

::1          site1.local site2.local site1.local site3.local site4.local
fe80::1%lo0  site1.local site2.local site1.local site3.local site4.local
127.0.0.1    site1.local site2.local site1.local site3.local site4.local

Daha sonra site3.local ve site4.local için IP çözümlemesi bu 5 saniyelik ölümü alır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.