当我在 Rackspace 云上设置 VirtualHosts(这是我第一次这样做)时,浏览器中的 URL 是否必须是名称才能正常工作?我的意思是,如果我将 OS X 上的本地主机文件设置为我当前的开发服务器,它是否仍然有效,或者 DNS 实际上是否必须指向开发服务器?
这有道理吗?本周我第一次设置了我的服务器,所以我可能完全偏离了主题。
答案1
DNS 无关紧要,主机条目就可以了。以下详细说明了为什么会这样:
当您的浏览器发送 Web 请求时,它会随同发送标头。其中一个标头是“Host”标头。如果我尝试通过 IP 访问您的服务器,Host 标头将被省略(或将包含 IP),并且不会匹配您的基于名称的 VirtualHost 声明。当多个站点托管在同一 IP 地址上时,Apache 使用此 Host 标头来决定要提供哪些页面。
强制浏览器发送与 DNS 不匹配(甚至查找)的 Host 标头的 hosts 方法是进行测试和开发环境的典型方法。