帮助与文档

您的位置  :  

什么是虚拟主机?虚拟主机是干什么用的?

文字出处:未知  |  作者:admin  |  发布时间:2020-12-10 09:33

  一种广泛使用的应用程序是共享虚拟主机。共享Web托管的价格低于专用Web服务器的价格,因为许多客户可以托管在单个服务器上。单个实体要在同一台计算机上使用多个名称也很常见,这样名称可以反映所提供的服务,而不是这些服务恰好位于何处。


 

  虚拟主机有两种主要类型,即基于名称和基于IP。基于名称的虚拟主机使用客户端提供的主机名。这样可以节省IP地址和相关的管理开销,但是所服务的协议必须在适当的位置提供主机名。特别是,将基于名称的虚拟主机与SSL / TLS一起使用存在很大的困难。基于IP的虚拟主机为每个主机名使用一个单独的IP地址,并且可以使用任何协议来执行,但是每个服务的域名都需要一个专用的IP地址。基于端口的虚拟主机原则上也是可行的,但实际上很少使用,因为它对用户不友好。

  可以组合基于名称和基于IP的虚拟主机:一台服务器可以具有多个IP地址,并在某些或所有这些IP地址上提供多个名称。当将SSL / TLS与通配符证书一起使用时,此技术很有用。例如,如果服务器操作员拥有两个证书,一个证书用于* .558idc.com,一个证书用于* .558idc.com,则该操作员可以使用相同的IP地址来提供foo.558idc.com和bar.558idc.com,但需要baz.558idc.com的单独IP地址。推荐阅读:为什么大家喜欢选择虚拟主机?

  基于名称的虚拟主机将多个主机名用于同一IP地址。

  基于名称的虚拟主机所需的技术先决条件是具有HTTP /1.1支持(今天很常见)的Web浏览器,以便在请求中包含目标主机名。这允许服务器在一个IP地址后面托管多个站点,以传递正确的站点内容。更具体地说,这意味着设置Host HTTP标头,这在HTTP / 1.1中是必需的。

  例如,服务器可能正在接收对两个域的请求,即www.558idc.com和www.558idc.com,这两个域都解析为相同的IP地址。对于www.558idc.com,服务器将从目录/ var / www / user / Joe / site /发送HTML文件,而对www.558idc.com的请求将使服务器从/ var / www / user提供页面。/ Mary / site /。同一域的两个子域可以相等地托管在一起。例如,博客服务器可以同时托管blog1.558idc.com和blog2.558idc.com。

  基于名称的虚拟主机的最大问题是难以托管多个运行SSL / TLS的安全网站。由于SSL / TLS握手发生在将预期的主机名发送到服务器之前,因此服务器不知道在握手中要显示哪个证书。一个证书可以通过“主题名称”字段或通配符来覆盖多个名称,但是此方法的实际应用受到管理注意事项和通配符匹配规则的限制。 TLS的扩展名为Server Name Indication(服务器名称指示),该名称在握手开始时就提供了名称,以解决该问题,但某些旧客户端(尤其是Internet Explorer)除外(在Windows XP或更旧的Android版本上),但未实现SNI。