开发者

Apache VirtualHost slow lookup

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.

Th开发者_开发问答is 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?


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.


What fixed it for me was editing httpd-vhosts.conf and changing all instances of:

<VirtualHost *:80>

to:

<VirtualHost 0.0.0.0:80>

It was taking about 2-5 seconds to resolve the host, now it is instant. I did not have to modify the order of my sites in my hosts file. This just makes it use ipv4 instead of ipv6 which I'd bet you don't use anyway.


For anyone who is using Chrome and still gets slow virtual host lookup, you need to change the virtual host name to something else than .local, eg. change test.local to test.dev.

Explanation and source here: http://bencrowder.net/blog/2012/10/slow-localhost-in-chrome/


You should as well implement other parameters to your vhosts file, like separate error logs and server alias


DocumentRoot "D:/xampp/htdocs/asd"
ServerName asd.com.br
ServerAlias asd.com.br
ErrorLog "logs/asd.log"
CustomLog "logs/asd.log" combined


Also setting the ip for ServerName in httpd.conf file worked for me

ServerName 127.0.0.1:80
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜