Apache2 和 Vagrant:本地主机映射

Apache2 and Vagrant: localhost mapping

我正在为 运行 Ubuntu 12.04 虚拟机使用 Vagrant 1.6.3。在这个虚拟机上我有 Apache 2.4.9。很长一段时间,Apache 只服务于一个站点——/sites-available 目录中有 000-default.conf 文件。

现在我想添加另一个站点。我在 /sites-available 目录中创建了 2 个文件:

并且我将 000-default.conf 重命名为 default。我还添加了 site1.local 和 site2.local 主机到主机上的 ./etc/hosts 文件。

Apache 配置中的服务器名称相应设置为 site1.local 和 site2.local。当我在浏览器中输入 http://site1.local:8080/ and http://site2.local:8080/ 时,一切正常。

但是我不明白为什么http://localhost:8080/ still points to the first site? In what config should I define mapping for "localhost"? After setting up server names in apache configs I thought that http://localhost:8080/应该return"Can not connect to server"错误。

假设您使用的是 name-based virtual host,site1 和 site2 可以工作,因为客户端在 header:

中传递了目标主机

If the client provided a Host: header field the list is searched for a matching vhost and the first hit on a ServerName or ServerAlias is taken and the request is served from that vhost.

使用 localhost,它不知道如何匹配定义的虚拟主机条目:

If no matching vhost could be found the request is served from the first vhost with a matching port number that is on the list for the IP to which the client connected (as already mentioned before).

就你问题的最后一部分而言,你可以尝试添加另一个虚拟主机条目,并将 localhost 作为名称定义。