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 个文件:
- site1.local.conf
- site2.local.conf
并且我将 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
作为名称定义。
我正在为 运行 Ubuntu 12.04 虚拟机使用 Vagrant 1.6.3。在这个虚拟机上我有 Apache 2.4.9。很长一段时间,Apache 只服务于一个站点——/sites-available 目录中有 000-default.conf 文件。
现在我想添加另一个站点。我在 /sites-available 目录中创建了 2 个文件:
- site1.local.conf
- site2.local.conf
并且我将 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
作为名称定义。