我是 Apache Web 服务器的新手。配置 Apache Web 服务器时,我们有设置选项name-based virtual host
。
根据我的理解,当用户在 Web 浏览器中输入域名时www.example.com
,它将连接到 DNS 服务器,DNS 服务器会将域名转换为(公共)IP 地址。然后,Web 浏览器将使用该 IP 地址连接到 Web 服务器。
现在,假设我有一台具有公共 IP 地址的服务器。a.a.a.a
我注册了 2 个域名,www.example.com
和www.example1.com
。这两个域名都指向同一个 IP 地址a.a.a.a
。因此,当用户在其 Web 浏览器中输入www.example.com
或时www.example1.com
,DNS 服务器将指向 IP 地址a.a.a.a
。
我已经根据用户指南配置了基于名称的虚拟主机本网站。
但是,我不明白的是:由于 DNS 服务器已经将域名转换为 IP 地址,因此所有用户都将使用 IP 地址连接到 Web 服务器a.a.a.a
。Apache 如何知道用户是否正在使用www.example.com
或www.example1.com
在其 Web 浏览器中?
答案1
http 标头将包含主机。在上面的示例中,主机为 www.example.com 或 www.example1.com。apache 会读取此主机标头,然后使用它向客户端发送正确的虚拟主机。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23