http_docs/第十八章 Web主机托管
Jianfeng 82d9fb8ea6 +++++++++++ 2016-11-14 14:25:57 +08:00
..
readme.md +++++++++++ 2016-11-14 14:25:57 +08:00

readme.md

内容提要

  • 本章主要介绍了关于在一台物理服务器上托管了很多的主机也就是说一个电脑里面部署了两个或者更多网站此时客户端怎么样和服务器端沟通才能无差错地访问对应资源的主机用户1访问a网站的资源那么就不能跑到b网站上获取资源。以及介绍了一些服务器集群的概念

相关概念

  • Web主机托管对内容资源的存储、协调以及管理的职责统称为Web主机托管。主机托管是服务器的主要功能之一。

  • 托管者:如果某个公司想建立一个网站,但不想自行管理服务器所需的软硬件,就需要主机托管服务,即托管者。

主机托管服务

  • 专用托管:一台物理服务器对应一个主机

  • 虚拟主机托管许多Web托管者通过让一些顾客共享一台计算机来提供便宜的Web主机托管服务这称为共享主机托管或虚拟主机托管。每个网站看起来是托管在不同的服务器上但实际上是托管在同一个物理服务器上。————但这并不意味着上千个网站是用一台PC机来提供服务的。托管者可以创建成排同样的服务器称为服务器集群。

虚拟服务器请求缺乏主机信息

  • 背景不幸的是HTTP/1.0中的一个设计缺陷会使虚拟主机托管者抓狂。HTTP/1.0规范中没有为共享的Web服务器提供任何方法来设别要访问的是哪一个托管的网站。

  • 造成的后果如果在一台物理服务器上托管了两个网站www.site1.com和www.site2.com。用户1想去获取www.site1.com的主页于是在它发送了的请求报文为请求行GET /index.html HTTP/1.0这里并没有发送主机信息所以很可能服务器返回的是www.site2.com的主页。

设法让虚拟主机托管正常工作

  • 为了解决HTTP/1.0无法提供主机设别的缺陷Web托管者需要开发变通的方案和约定来支持共享的虚拟主机托管。主要有四种技术

1、通过URL路径进行虚拟主机托管可以通过分配不同的URL路径用这种笨方法把共享服务器上的虚拟站点隔离开。例如可以给每个逻辑网站一个专门的路径前缀。

     Joe的五金商店可以是http://www.joes-hardware.com/joe/index.html

     Mary的古董拍卖店可以是http://www.marys-antiques.com/mary/index.html

当请求到达服务器时,其中并没有主机名信息,但服务器可以通过路径来区分它们。

     请求Joe的五金商店的网址是 GET /joe/index.html

     请求Mary的古董拍卖店的网址是 GET /mary/index.html

显然这不是一个好方法,/joe和/mary这样的前缀是多余的并且那种常规输入主机地址显示主页的约定不存在了

2、通过端口号进行虚拟主机进行托管托管者为每个主机提供一个单独的端口号用来区分每个网站。这个方法也有同样的显著问题因为终端用户很少去输入端口号的。

3、通过IP地址进行虚拟主机托管一个更常用的、更好的方法是通过IP地址进行虚拟化。每个虚拟网站都分配一个或多个唯一的IP地址。所有虚拟网站的IP地址都绑定到同一个共享的服务器上。服务器可以查询HTTP连接的目的IP地址并以此来判断客户端的目标网扎。这种方法对大的托管者来说虚拟IP的主机托管能够工作但它会带来一些麻烦。1ip地址是有限制的服务器上托管成百上千的虚拟站点的服务商不一定能实现愿望。2IP地址是稀缺资源。3服务器通过赋值服务器来增加容量时ip地址短缺的问题就更严重了。

4、通过Host首部进行虚拟主机托管这个方法主要是在请求首部增加Host首部用来发送目的主机信息和端口。

解释Host首部

  • 1如果HTTP请求报文中的URL是绝对的也就是说包含方案和主机部分就忽略Host首部的值。2如果HTTP请求报文中的URL没有主机部分而该请求带有Host首部则主机/端口的值就从Host首部中取。3如果通过1和2步都无法获得有效的主机就向客户端返回400 Bad Request响应。

使网站更可靠

  • 出现下列情况,网站是服务运作的。

1、服务器宕机

2、交通拥塞服务器过载甚至使它彻底停机

3、网络中断或掉线

  • 常见解决办法:

1、镜像的服务器集群涉及的技术HTTP重定向该内容的URL会解析到主服务器的ip地址然后它会发送重定向到复制服务器。DNS重定向该内容的URL会解析到四个IP地址DNS服务器可以选择发送给客户端的IP地址。

2、内容分发网络