虚拟主机不能在通过主机访问的访客虚拟机上工作

我有一台运行VirtualBox(v4.122)的Windows 7主机和一台运行Apache2的Kubuntu 12.04虚拟机。

我可以从主机访问Apache服务器,但它只会加载默认的Apache欢迎页面,而忽略了所有的虚拟主机

关于configuration的更多细节:

  • Kubuntu虚拟机具有多个虚拟主机,当通过虚拟机内部的networking浏览器访问时,这些虚拟主机都可以正常工作。
  • 我正在使用VirtualBox中的端口转发将主机上的端口8080发送到guest虚拟机上的端口80。
  • Kubuntu和C:\ Windows \ System32 \ drivers \ etc \ hosts中的/ etc / hosts都具有本地域的条目,并且设置为parsing为127.0.0.1
  • 在Kubuntu机器上访问'localhost'会parsing到在默认虚拟主机(/ var / www /)中设置的目录,但访问localhost:8080服务器到服务器的默认网页(即“It works …”)

更新以添加来自apache2ctl -S的输出:

VirtualHost configuration:127.0.1.1:80 is a NameVirtualHost default server dghportal.local (/etc/apache2/sites-enabled/dghportal.local:1) port 80 namevhost dghportal.local (/etc/apache2/sites-enabled/dghportal.local:1) port 80 namevhost local.classtoolkit.org (/etc/apache2/sites-enabled /local.classtoolkit.org:1) wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server itechsrv-kuvm1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost itechsrv-kuvm1 (/etc/apache2/sites-enabled/000-default:1) Syntax OK 

看起来像你自定义的<VirtualHost>块被configuration为<VirtualHost 127.0.1.1:80> – 这将永远不会捕获来自不同主机的请求。

来自其他设备的请求正被/etc/apache2/sites-enabled/000-default:1定义的虚拟主机所捕获/etc/apache2/sites-enabled/000-default:1 – 这是导致欢迎页面出现的原因。

将您的虚拟主机定义从<VirtualHost 127.0.1.1:80>更改为<VirtualHost *:80> ,您应该全部设置! 您可能还希望使用a2dissite default ,以便您的网站(而不是欢迎网站)可以捕获到与已configuration的主机名不匹配的主机名的请求。