Быстрый поиск Apache VirtualHost
Наконец-то я сумел правильно настроить httpd.conf для своих нужд виртуального хоста. Это важная часть файла httpd.conf.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
DocumentRoot /Applications/XAMPP/htdocs/
</VirtualHost>
<VirtualHost *:80>
ServerName test.local
DocumentRoot /Applications/XAMPP/htdocs/test/
</VirtualHost>
<VirtualHost *:80>
ServerName work.local
DocumentRoot /Applications/XAMPP/htdocs/work/
</VirtualHost>
Когда я получаю доступ к чему-либо на localhost (т.е. http://localhost/phpmyadmin), все происходит очень быстро.
Всякий раз, когда я получаю доступ к test.local или work.local(или другим настройкам), он тратит 10-15 секунд на поиск. Следующие запросы обрабатываются правильно, и это очень быстро, но через минуту или около того бездействия, он должен искать снова.
Это мой файл /etc/hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#::1 localhost
fe80::1%lo0 localhost
# Virtualhosts
127.0.0.1 test.local work.local yii.local
Как я могу исправить эту неприятную проблему?
Ответы
Ответ 1
Добавьте свои виртуальные хосты в первую строку:
127.0.0.1 localhost test.local work.local yii.local
И удалите последнюю строку.
Это должно сделать трюк. Ваши vhosts теперь являются псевдонимом для localhost. Не рекомендуется иметь один и тот же IP-адрес в нескольких строках. Это просто путает DNS-кеш.
Ответ 2
Для тех, кто использует Chrome и по-прежнему получает медленный поиск виртуального хоста, вам нужно изменить имя виртуального хоста на что-то еще, кроме .local
, например. измените test.local
на test.dev
.
Объяснение и источник здесь: http://bencrowder.net/blog/2012/10/slow-localhost-in-chrome/
Ответ 3
Для меня исправлено редактирование httpd-vhosts.conf и изменение всех экземпляров:
<VirtualHost *:80>
в
<VirtualHost 0.0.0.0:80>
Для разрешения хоста потребовалось около 2-5 секунд, теперь это мгновенно. Мне не нужно было изменять порядок моих сайтов в файле моих хостов. Это просто заставляет использовать ipv4 вместо ipv6, который я бы поспорил, что вы все равно не используете.
Ответ 4
Вам также следует реализовать другие параметры для вашего файла vhosts, например, отдельные журналы ошибок и алиас сервера
DocumentRoot "D:/xampp/htdocs/asd"
ServerName asd.com.br
ServerAlias asd.com.br
ErrorLog "logs/asd.log"
CustomLog "logs/asd.log" вместе
Ответ 5
Также настройка ip для ServerName в файле httpd.conf работала для меня
ServerName 127.0.0.1:80