18.3 服务器集群与 CDN

来源:互联网 发布:js获取array长度 编辑:程序博客网 时间:2024/06/16 12:02
  • 在下面列出的这些时间段内,网站通常是无法运作的:
    • 服务器宕机的时候。
    • 拥堵:突然的拥堵可以使 Web 服务器过载,降低其响应速度,甚至使它彻底停机。
    • 网络中断或掉线。
  • 本节会展示一些预判和处理这些常见问题的方法:

1. 镜像的服务器集群

  • 服务器集群:一排配置相同的 Web 服务器,互相可以替换。每个服务器上的内容可以通过镜像复制,这样当某个服务器出问题的时候,其他的可以顶上。
  • 镜像的服务器常常组成层次化的关系:
    • 主原始服务器 (master origin server):充当“内容权威”——它含有原始内容(可能就是内容作者上传的那个服务器)。
    • 复制原始服务器 (replica origin server):从主原始服务器接收内容的镜像服务器。
  • 一种简单的部署服务器集群的方法是用网络交换机把请求分发给服务器。托管在服务器上的每个网站的 IP 地址就设置为交换机的 IP 地址。
  • 下图显示的镜像服务器集群中,主原始服务器负责把内容发送给复制原始服务器。对集群外部来说,内容所在的 IP 地址就是交换机的 IP 地址。交换机负责把请求发送到服务器上去。
    这里写图片描述
  • 镜像 Web 服务器可以在不同的地点包含同样内容的副本。主原始服务器和复制原始服务器可以在不同的地点,连接最近的服务器可以快速获得信息。
  • 有以下两种方法把客户端的请求导向特定的服务器:
    • HTTP 重定向:该内容的 URL 会解析到主服务器的 IP 地址,然后它会发送重定向到复制服务器。
    • DNS 重定向:该内容的 URL 会解析到 4 个 IP 地址,DNS 服务器可以选择发送给客户端的 IP 地址。

2. 内容分发网络(CDN)

  • 内容分发网络(CDN)就是对特定内容进行分发的专门网络。这个网络中的节点可以是 Web 服务器、反向代理或缓存。

3. CDN 中的反向代理缓存

  • 复制原始服务器可以用反向代理(也称为替代物)缓存来代替。反向代理缓存可以像镜像服务器一样接受服务器请求。它们代表原始服务器中的一个特定集合来接收服务器请求。
  • 原始服务器和反向代理缓存之间通常有协作关系,到特定的原始服务器的请求就由反向代理缓存来接收。
  • 反向代理和镜像服务器之间的区别在于反向代理通常是需求驱动的。它们不会保存原始服务器的全部内容副本,它们只保存客户端请求的那部分内容。内容在其高速缓存中的分布情况取决于它们收到的请求,原始服务器不负责更新它们的内容。为了更容易地访问“热点”内容(就是高请求率的内容),有些反向代理具有“预取”特性,可以在用户请求之前就从服务器上载入内容。
  • CDN 中带有反向代理时,可能会由于存在代理的层次关系而增加其复杂性。

4. CDN 中的代理缓存

  • 与反向代理不同,传统的代理缓存能收到发往任何 Web 服务器的请求。在代理缓存与原始服务器之间不需要有任何工作关系或 IP 地址约定。
  • 与反向代理比起来,代理缓存的内容一般都是按需驱动的,不能指望它是对原始服务器内容的精确复制。某些代理缓存也可以预先载入热点内容。
  • 按需驱动的代理缓存可以部署在其他环境中——尤其是拦截环境,在这种情况下,2 层或 3 层设备(交换机或路由器)会拦截 Web 流量并将其发送给代理缓存。
    这里写图片描述
  • 拦截环境依赖于在客户端和服务器之间设置网络的能力,这样,所有合适的 HTTP 请求才能真正发送到缓存中去。根据收到的请求,将内容分布在缓存中。

服务器集群和分布式代理缓存或反向代理服务器分散了网络流量,可以避免拥塞。分发内容使之更靠近终端用户,这样从服务器到客户端的传输时间就更短了。请求和响应穿过因特网,在客户端和服务器间传输的方式是影响资源访问速度最主要的因素。
加速网站访问的另一种方法是对内容进行编码以便更快地传输。比如,对内容进行压缩,但前提是接收的客户端能够把内容解压缩。

阅读全文
0 0
原创粉丝点击