虚拟主机 – 处理它的最佳方式?

我能胜任Apache,PHP和虚拟主机的基础知识,但有一个关于虚拟主机的问题。 据我所知,HOSTS文件只能在以下位置之一:

C:/ Windows / system32 / drivers / etc(在旧的安装,我相信)

我不认为它可以放在其他地方使用的Apache,只是为虚拟主机,主要HOSTS文件阻止网站等

我听说了统一服务器网站上的PAC文件( http://wiki.uniformserver.com/index.php/Virtual_Hosting:_PAC ),但是它们是特定于浏览器的,不是吗?

除HOSTS文件之外,处理虚拟主机的最佳方式是什么?

我的服务器目前还没有开放给互联网,但是如果是这样的话,如果虚拟主机域名成为向前(即开放给互联网),那么解决DNS的最好方法是什么?

Apache中的虚拟主机与etc / hosts文件是分离的概念。 etc / hosts文件只是本地DNSparsing的一种方法。 虚拟主机是一个configuration选项,Apache将根据请求的URL提供不同的页面。 这需要一些DNS魔术,因为最终用户需要能够parsing主机名。 多个IP或端口是另外两个选项。

在DNS中,您只需添加一个不同域的条目,指向相同的IP。 例如,www.site1.com和www.site2.com都会指向172.32.4.6

有关虚拟主机如何工作的详细信息,请访问: http : //httpd.apache.org/docs/current/vhosts/

一些混合的术语,在这里。 hosts文件中的“主机”是指静态定义的名称到数字地址定义。 所以,例如,你会在那里看到一行定义localhost127.0.0.1 (可能::1 ,取决于windows版本)。

另一方面,Apache中的VirtualHosts引用Apache中的configuration方法,根据传入请求的属性提供不同的Web页面; 特别是连接进入的端口和连接到请求的Host头。

通过这种方式,Apacheconfiguration可以为多个不同的域提供单独的一组页面; 例如,当www.domain.com被请求时,与请求info.domain.com时,提供不同的页面组。 Apache的文档是VirtuaHosts的一个很好的概述。

希望这有助于澄清事情。