虚拟主机无法在通过主机访问的客户虚拟机上运行

虚拟主机无法在通过主机访问的客户虚拟机上运行

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

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

有关配置的更多详细信息:

  • Kubuntu VM 有多个虚拟主机,通过 VM 内部的 Web 浏览器访问时均能正常工作。
  • 我正在使用 VirtualBox 中的端口转发将主机上的端口 8080 发送到客户机上的端口 80。
  • Kubuntu 中的 /etc/hosts 和 C:\Windows\System32\drivers\etc\hosts 都具有本地域的条目,并设置为解析为 127.0.0.1
  • 在 Kubuntu 机器上访问 'localhost' 将解析为默认 vhost (/var/www/) 中设置的目录,但访问 localhost:8080 服务器将打开该服务器的默认网页(即“它有效......”)

已更新以添加来自 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

答案1

看起来您的自定义<VirtualHost>块配置为<VirtualHost 127.0.1.1:80>- 这将永远不会捕获来自不同主机的请求。

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

将您的 vhost 定义从 更改为<VirtualHost 127.0.1.1:80><VirtualHost *:80>一切就绪!您可能还需要a2dissite default,以便您的网站(而不是欢迎网站)可以捕获与已配置的主机名不匹配的主机名的请求。

相关内容