Bagaimana cara menghilangkan penyelesaian / pemuatan localhost / virtualhost yang lambat (jeda 2-3 detik) di Mac OS X Lion?


97

Sejak menyiapkan lingkungan pengembangan saya di Mac OS X Lion (macbook air baru yang dibeli pada Januari 2012), saya perhatikan bahwa menyelesaikan ke host virtual sangat lambat (sekitar 3 detik) untuk pertama kalinya tetapi setelah itu cepat selama Saya terus memuatnya secara teratur.

Jika saya membiarkannya tidak tersentuh selama beberapa menit dan kemudian memuat ulang lagi, pengisian ulang pertama (sekali lagi) sangat lambat; Sepertinya ada sesuatu yang sedang disimpan dalam cache.

Seperti yang dapat dilihat di bawah ini, saya tidak menggunakan TLD lokal.

Pengaturan saya: Apache 2 - MySQL - PHP diinstal dan diaktifkan - menambahkan beberapa host virtual yang salah satunya saya buat untuk localhost

/ Etc / hosts saya:

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

Pengaturan host virtual saya di 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>

Saya menemukan stackoverflow.com/questions/19313546/… ini . dan itu berhasil untuk saya !!!
clark yu

2
Saya melaporkan ini sebagai bug ke apple rdar: // 24237290 dan mendapat tanggapan lucu ini:> Teknik telah memberikan umpan balik berikut mengenai masalah ini:> Ini adalah perilaku yang diharapkan karena maks no. dari alias di / etc / hosts file yang diizinkan adalah 10. Memiliki lebih dari 10 alias di file / etc / hosts sepertinya tidak praktis. Saya akan menyambut baik jika lebih banyak orang melaporkan bug ini dan memberi tahu mereka bahwa jawaban ini benar-benar konyol (dan tidak didokumentasikan di mana pun juga).
dwt

Apakah ada sesuatu yang buruk tentang penggunaan TLD .local?
Yaakov Ainspan

Bekerja dengan baik untuk saya di mojave ... :)
rogerdpack

Jawaban:


169

Saya memiliki masalah yang persis sama dan itu membuat saya gila!

Letakkan semua entri file host Anda untuk localhost menjadi satu baris seperti ini:

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

Bekerja seperti pesona bagi saya. Sepertinya bug di Lion.


Ini berfungsi dan menurut saya @ adam-gries harus menandainya sebagai jawaban. Terima kasih Jeremy!
zysoft

5
Perbaikan ini berhasil untuk saya tetapi saya mencapai batas 11 situs, setelah itu mulai berjalan lebih lambat! Untuk saat ini, saya telah membagi semuanya menjadi dua entri host (dengan alamat IP yang sama) dan tampaknya akan baik-baik saja.
Alex Ghiculescu

Masalah dan solusi yang sama seperti @AlexGhiculescu, tetapi di OS X 10.8 Mountain Lion.
chrishiestand

2
OS X 10.9, masih menjadi masalah dan telah membuat saya gila selama berjam-jam sekarang! Brilian, terima kasih atas jawaban yang bagus!
robertp

2
Ini hanya berfungsi karena Anda memasukkan entri host SEBELUM perutean perangkat localhost lainnya. Jika server web Anda melihat 127.0.0.1, host tersebut harus berada di HEAD file / etc / hosts untuk pencarian cepat. Saya memiliki beberapa lusin 127.0.0.1 baris, hanya ketika saya memindahkannya ke TOP dari file / etc / hosts barulah mereka menyelesaikannya dengan cepat untuk saya.
Joey T

70

Ada masalah lain 10.7. * Hingga 10.8.4 untuk situs yang diakhiri dengan ".local" yang menyebabkan pencarian selama lima detik. Detail dan solusi atas kebaikan Bram (us) Van Damme di tautan berikut:

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

"Secara default, semua nama host yang diakhiri dengan .local diperlakukan sebagai host Bonjour daripada dengan menanyakan entri server DNS di preferensi Jaringan.

Untuk memperbaiki masalah ini (tanpa harus mengganti nama setiap vhost) Anda perlu menambahkan entri IPv6 untuk setiap vhost Anda di file / etc / hosts: "

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

Ini juga mempengaruhi sistem windows. Solusi bekerja seperti pesona di sana juga.
ToBe

Saya terus mengalami masalah ini saat mengarahkan host ke VM lokal. Saya membiarkan file host saya diformat dengan baik (entri pada baris mereka sendiri dll.) Dan menambahkan entri tambahan, menggunakan alamat IPV6 dari VM, dan semua masalah penundaan saya hilang. Saya sepertinya hanya mengalami ini dengan situs yang diakhiri dengan .local, dan menambahkan kedua entri IPV4 / 6 telah memperbaiki segalanya untuk saya (OS X 10.9)
Justin

Harus berkelahi dengan ini sebentar karena nama host saya di panel preferensi "Berbagi" tidak cocok dengan yang saya masukkan di / etc / hosts, kalau-kalau itu membantu siapa pun ...
abhishekmukherg

Wow. Saya mengerti bahwa ::1itu setara dengan pintasan IPv6 127.0.0.1. Tapi apa fe80::1%lo0artinya? - ah, dijawab di superuser.com/questions/241642/…
AlexChaffee

di macOS Sierra ini berfungsi tetapi saya harus menghapus baris pertama.
Bryce York

24

Saya memiliki masalah yang sama, juga pada Lion.

Anehnya, solusi saya adalah kebalikan dari solusi Jeremy. Saya memiliki sejumlah besar entri someproject.dev dalam satu baris di / etc / hosts. Memuat situs di salah satu situs tersebut untuk pertama kalinya membutuhkan waktu yang sangat lama, sekitar satu menit. Jika saya menggunakannya lagi dalam 5 detik atau lebih, itu sangat cepat, tetapi lebih lama dan akan membutuhkan satu menit lagi. Saya telah mencurigai segala macam hal, koneksi mysql, versi Ruby, bug Rails, Apache, Phusion Passenger. Sampai akhirnya saya melihat Konsol dan menyadari bahwa pencarian DNS sedang dilakukan.

Jadi, saya meletakkan semuanya pada baris terpisah:

127.0.0.1 localhost

127.0.0.1 myproject.dev

127.0.0.1 myotherproject.dev

Dan tiba-tiba semuanya menjadi tajam lagi. Sama di kedua mesin saya.


Mencoba apa pun di sini di stackoverflow tetapi postingan ini dan user902664 membantu. Semua jalur IPv4 dan IPv6 harus dalam satu baris. Jika menggunakan entri IPv4 saja tetapi pada baris yang dipisahkan, diturunkan dari 30 detik menjadi ~ 1, penggunaan bersama dengan pengaturan IPv6 pada baris terpisah dikurangi menjadi ~ 0,5 detik.
tomis

Ini tampaknya bug gila. Saya memiliki entri untuk sebuah alamat, 192.168.56.3 dengan 14 alias. Hapus satu alias dan Anda dapat menyelesaikan host di <1s. Dengan alias ke-14, dibutuhkan ~ 30 detik untuk menyelesaikan beberapa entri pertama dalam daftar ...
Brian M. Carr

Apakah ini bug eksklusif untuk OSX? Adakah yang bisa menautkan ke laporan bug?
pje

Hanya menghabiskan waktu berjam-jam mempelajari lebih banyak tentang konfigurasi jaringan daripada yang saya inginkan. Saya akan mengambil risiko dan menyiapkan server DNS lokal dan kemudian ini memperbaikinya. Terima kasih. Mavericks 10.9.5 di sini.
clumsyfingers

13

Menentukan host yang sama untuk IPv6 :: 1 membantu saya.

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

Ya, dan satu domain per baris.
warvariuc

1
Ini memperbaiki masalah saya. Setidaknya dalam kasus saya, tidak perlu hanya satu domain per baris.
jeff-h

9

Pastikan untuk meletakkan entri IP v6 tidak sejalan dengan localhost

::1 localhost

entri IP v6 ditempatkan di baris terpisah

fe80::1%lo0 here and_here

Kadang-kadang sangat cepat sekarang, tetapi ada pengecualian langka di mana kelambanan lama muncul kembali. Namun mereka mungkin didasarkan pada alasan lain.


1
Ini berfungsi untuk saya di OS X 10.11.6 - segera setelah saya menduplikasi entri IPv4 localhost (baris tunggal untuk 127.0.0.1) ke baris :: 1 dengan alias yang sama, pencarian beralih dari 4-5 detik ke instan. Saya juga memiliki entri 127.0.0.2 yang saya duplikat sebagai :: 2. Saya memiliki satu baris per alamat. Terima kasih!
RichVel

7

Di OSX El Capitan, apa yang berhasil untuk saya adalah membuat duplikat entri IPv6 tepat di atas entri IPv4 seperti itu

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

Setuju, berfungsi dengan entri IPv6 di atas atau di bawah IPv4 asalkan memiliki daftar alias yang sama.
RichVel

Ini tidak masuk akal, tetapi memperbaiki masalah yang saya alami dengan Chrome yang sangat lambat dalam menyelesaikan tautan localhost ke kontainer buruh pelabuhan laradock saya (Safari selalu baik-baik saja)
jeff-h

Berfungsi untuk High Sierra juga - Firefox, Safari berfungsi dengan atau tanpa itu
Chris Athanasiadis

3

Memastikan bahwa nama host ditentukan di awal file membuat perbedaan bagi saya. Secara default baris 127.0.0.1 localhost sudah ada di awal, cukup tambahkan entri Anda di baris yang sama.


Ini adalah solusi nyata, mencoba semua yang lain dan tidak ada hubungannya dengan semua referensi dalam satu baris atau ditautkan ke rute IPv6 (kecuali mungkin itu adalah rute utama Anda di konfigurasi apache ...) terima kasih @Erik!
Joey T

Juga ini lebih dari 2 atau 3 detik bagi saya, lebih seperti 10 hingga 20 detik. Saya memiliki banyak 127.0.0.1 entri tetapi semua terdaftar SETELAH konfigurasi localhost default oleh OS X. Saya juga menggunakan Lion, bukan ML, jika itu penting.
Joey T

Sayangnya, ini tidak lagi berfungsi dengan Mavericks - meninggalkan upvote saya di sini untuk Lion, meskipun berfungsi dengan baik sampai saya meningkatkan ke Mavs beberapa bulan yang lalu.
Joey T

1

Saya memiliki masalah yang sama dan ternyata itu disebabkan oleh mengaktifkan IPv6 di LAN saya, tetapi tidak memiliki konfigurasi IPv6 dengan benar antara jaringan saya dan ISP saya. Rupanya server DNS IPv6 lebih diutamakan daripada DNS IPv4 ketika klien diberikan keduanya. Butuh beberapa detik (pada setiap percobaan) bagi klien untuk menemukan bahwa DNS IPv6 tidak dapat dijangkau atau hilang, dan kemudian kembali ke DNS IPv4.


1

Catatan: Saya menggunakan Windows dan XAMPP, namun saat meneliti masalah banyak orang memiliki masalah yang sama di Windows dan Mac. Jawaban untuk referensi bagi siapa pun yang menemukan pertanyaan ini karena saya telah menghabiskan waktu berjam-jam mencoba menemukan solusi yang sesuai untuk saya:

Saya telah mencoba banyak solusi untuk masalah yang sama termasuk menempatkan semua host pada satu baris, menghapus berlebihan host dan VirtualHosts, dan juga termasuk garis IPv6 - tidak satupun dari saja yang berhasil.

Satu-satunya solusi yang sejauh ini tampak berhasil bagi saya adalah kombinasi dari semua solusi:

  • Mengubah domain yang saya gunakan dari situs saya. lokal ke situs saya. dev . Terinspirasi oleh jawaban @ Cleverlemming.
  • Termasuk garis IPv6.
  • Menghapus virtualhost dan host yang berlebihan (saya mengomentarinya).

Di file host saya, host saya saat ini berada di baris terpisah dan sejauh ini masalahnya tampaknya sudah diperbaiki.

Semoga berhasil bagi siapa pun yang mencoba menyelesaikan masalah ini dan jika ada yang memiliki informasi untuk ditambahkan, lakukanlah - ini tampaknya masalah yang memengaruhi banyak orang tanpa penyebab atau solusi tunggal yang diketahui.


1

Saya memiliki masalah yang sama dan akhirnya menyadari bahwa saya memiliki entri host yang sama dua kali di baris yang sama:

misalnya

127.0.0.1 localhost host1 host2 host3 host4 host5 host1 host6

Saya menghapus instance kedua dari host yang sama (dalam contoh di atas - host1) - dan semuanya segera dipercepat.

Merasa agak konyol ketika saya menemukan ini, tetapi ketika Anda memiliki 10 nama host yang panjang di baris yang sama dan Anda sering menambahkan / menghapus, itu dapat diabaikan.


0

Trik yang berhasil untuk saya adalah menambahkan

127.0.0.1 locahost

di baris pertama file host.

Dari semua host virtual saya, hanya yang menggunakan database yang lambat. Saya percaya itu karena proses mencari "localhost" untuk koneksi database memperlambat segalanya, karena saya hanya menambahkan alamat untuk virtual host saya dan bukan "localhost" juga. Sekarang semuanya tajam lagi. :)


Saya punya dua definisi localhost di sana; satu memang tampak lebih baik.
Aaron Brick

0

Aku juga sering mengalami ini. Saya memiliki banyak vhost yang didefinisikan dalam dua baris, satu untuk IPv4 dan satu untuk IPv6. Memindahkan tuan rumah yang saya coba selesaikan untuk menjadi yang pertama dalam daftar mempercepatnya.

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

Masalah bodoh yang membuat saya membuang banyak waktu: setelah menerapkan jawaban @ Cleverlemming , saya menemukan bahwa ada entri duplikat pada file host. Sesuatu seperti:

::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

Kemudian penyelesaian IP untuk site3.local dan site4.local membutuhkan 5 detik kematian ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.