【问题标题】:Apache2 and Vagrant: localhost mappingApache2 和 Vagrant:本地主机映射
【发布时间】:2015-05-10 20:56:04
【问题描述】:

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

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

  • site1.local.conf
  • site2.local.conf

我将 000-default.conf 重命名为 default。另外,我在主机上的 ./etc/hosts 文件中添加了 site1.local 和 site2.local 主机。

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

但我不明白为什么http://localhost:8080/ 仍然指向第一个站点?我应该在什么配置中为“localhost”定义映射?在 apache 配置中设置服务器名称后,我认为 http://localhost:8080/ 应该返回“无法连接到服务器”错误。

【问题讨论】:

    标签: apache vagrant virtualhost


    【解决方案1】:

    假设您使用的是name-based virtual host,site1 和 site2 可以工作,因为客户端在标头中传递了目标主机:

    如果客户端提供了 Host: 标头字段,则在列表中搜索匹配的 vhost,并在 ServerName 或 ServerAlias 上进行第一次命中,并从该 vhost 提供请求。

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

    如果找不到匹配的虚拟主机,则从第一个具有匹配端口号的虚拟主机提供服务,该端口号位于客户端连接的 IP 列表中(如前所述)。

    至于您问题的最后一部分,您可以尝试添加另一个以 localhost 作为名称定义的虚拟主机条目。

    【讨论】:

      猜你喜欢
      • 2014-03-09
      • 1970-01-01
      • 2018-07-06
      • 2023-03-14
      • 2015-05-29
      • 1970-01-01
      • 2016-05-07
      • 2015-08-16
      • 2016-07-08
      相关资源
      最近更新 更多