Apache VirtualHost slow lookup

Leonardo Rossi picture Leonardo Rossi · Sep 25, 2011 · Viewed 35.1k times · Source

I finally managed how to configure properly httpd.conf for my virtualhost needings. This is the relevant part of httpd.conf file

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>

When I access anything on localhost (i.e. http://localhost/phpmyadmin) everything is very fast. Whenever I access test.local or work.local (or others I configured) it spends 10-15 seconds on lookup. The following requests are handled correctly and it's very fast but after a minute or so of inactivity, it has to lookup again.

This is my /etc/hosts file

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

How could I fix this annoying issue?

Answer

Alexander Janssen picture Alexander Janssen · Sep 26, 2011

Add your virtual hosts to the first line:

127.0.0.1       localhost test.local work.local yii.local

And remove the last line.

That should do the trick. Your vhosts are now an alias for localhost. It's not a good idea to have the same IP-address in multiple lines. This just confuses the DNS-cache.