第五部分:内容发布与分发
第 18 章 Web 主机托管#
主机托管服务#
提供专业化管理的 Web 主机托管服务。
虚拟主机托管#
Web 托管者通过让顾客共享一台计算机来提供便宜的 Web 主机托管服务,称为共享主机托管或虚拟主机托管。
设法让虚拟主机托管正常工作#
- 通过 URL 路径进行虚拟主机托管:在 URL 中增添专门的路径部分,以便服务器判断是哪个网站。
- 通过端口号进行主机托管:为每个站点分配不同的端口号。
- 通过 IP 地址进行主机托管:为不同虚拟站点分配专门的 IP 地址,把这些地址都绑定到一台单独的机器上。
- 通过 Host 首部进行主机托管。
使网站更可靠#
镜像的服务器集群#
服务器集群是一排配置相同的 Web 服务器,互相可以替换。每个服务器上的内容可以通过镜像复制,这样当某个服务器出现问题的时候,其他的可以顶上。
镜像的服务器通常组成层次化的关系。某个服务器充当 “内容权威”—— 包含原始内容,这个服务器称为主原始服务器。从主原始服务器接收内容的镜像服务器称为复制原始服务器。
一种简单的部署服务器集群的方法是用网络交换机把请求分发给服务器,托管在服务器上的每个网站的 IP 地址就设置为交换机的 IP 地址。
两种办法把客户端的请求导向特定的服务器:
- HTTP 重定向:URL 会解析到主服务器的 IP 地址,然后它再发送重定向到复制服务器。
- DNS 重定向:URL 会解析到 4 个 IP 地址,DNS 服务器可以选择发送给客户端的 IP 地址。
内容分发网络#
内容分发网络(CDN)就是对特定内容进行分发的专门网络,这个网络中的节点可以是 Web 服务器‘反向代理或者缓存。
第 19 章 发布系统#
暂无笔记。
第 20 章 重定向与负载均衡#
为什么要重定向#
- 可靠地执行 HTTP 事务
- 最小化时延
- 节约网络带宽
重定向到何地#
Web 服务器会根据每个 IP 来处理请求。将请求分摊到复制的服务器中去,就意味着应该把对某特定 URL 的每条请求都发送到最佳的 Web 服务器上去(最靠近用户端、或负载最轻的、或采用其他优化策略选择的服务器)。
通用的重定向方法#
HTTP 重定向#
Web 站点会将 HTTP 重定向作为一种简单的负载均衡形式来使用。处理重定向的服务器(重定向服务器)找到可用的负载最小的内容服务器,并将浏览器重定向到那台服务器上去。
- (a)客户端向服务器发送请求。
- (b)服务器回送一个带有状态码 302 的重定向报文。
- (c)客户端会用重定向 URL 重新发送请求。
- (d)(e)(f)另一个客户端可能会被重定向到另一台服务器上去。
重定向缺点:
- 需要原始服务器进行大量处理来判断重定向到哪台服务器上去
- 增加用户时延
- 如果重定向服务器出故障,站点就会瘫痪
DNS 重定向#
将域名解析为 IP 地址 称为 DNS。DNS 解析程序可能是客户端的操作系统、客户端网络中的 DNS 服务器或者远距离 DNS 服务器。DNS 允许将几个 IP 地址关联到一个域中,可以配置 DNS 解析程序或对其进行编程,以返回可变的 IP 地址。
最简单决策算法 ——DNS 轮转
DNS 轮转是一种单纯的负载均衡策略,没有考虑任何与客户端和服务器的相对位置,或者服务器当前负载有关的因素。大多数 DNS 客户端只会使用多地址集中的第一个地址,为了负载均衡,大多数 DNS 服务器都会在每次完成查询后对地址进行轮转。
DNS 缓存带来的影响
DNS 地址轮转会分摊负载,但很多 Web 浏览器为了减少 DNS 查找的开销,会缓存结果,导致 DNS 轮转不能平衡负载。
其他基于 DNS 的重定向算法
- 负载均衡算法:将负载最轻的 Web 服务器放在列表最前面。
- 邻接路由算法:DNS 服务器尝试将用户导向最近的 Web 服务器。
- 故障屏蔽算法:将请求绕过服务中断的地方。
任播寻址#
在任播寻址中,几个地理分散的 Web 服务器拥有完全相同的 IP 地址,而且会通过骨干路由器的 “最短路径” 路由功能将客户端的请求发给离它最近的服务器。
IP MAC 转发#
在以太网中,HTTP 报文是以携带地址的数据分组的形式发送的。每个分组都有第二层地址 MAC(第二层设备关注的),第四层地址 —— 包含源 IP 地址、目的 IP 地址、TCP 端口号(第四层设备关注的)。
第四层交换机检测出第四层地址,并据此来选择路由,如下:
- 编写交换机程序,将 MAC3 上所有端口 80 的流量都转发到 MAC6 代理缓存上去。MAC3 的其他流量都转发到 MAC5 上去。
- 如果有可用缓存,则由代理缓存提供内容。如果没有,代理缓存会代表客户端向原始服务器发送 HTTP 请求,交换机会将端口 80 的请求从 MAC6 发送给 MAC5。
IP 地址转发#
交换机或其他第四层设备会检测输入分组中的 TCP/IP 地址,并通过修改目的 IP 地址(不是目的 MAC 地址)对分组进项相应的转发,这种类型的转发称为 NAT(网络地址转换)。
网元控制协议#
网元(NE,路由器、交换机等负责转发 IP 分组的设备)
服务器元素(SE,Web 服务器和代理缓存等提供应用层请求的设备)
网元控制协议(NECP)允许网元与服务器元素进行交互,它为 SE 提供一种发送负载均衡信息给 NE 的方式,这样 NE 可以在合适情况下进行负载均衡。
代理的重定向方法#
显示浏览器配置#
配置 Web 浏览器,使其将报文发送给附近的代理,通常是缓存。
代理自动配置(PAC)#
Web 浏览器从配置服务器中解析出 PAC 文件,PAC 文件会告诉浏览器为每个 URL 使用什么代理。
Web 代理自动发现协议(WPAD)#
Web 浏览器从配置服务器查询 PAD 的 URL,不需要将浏览器配置为使用特定的配置服务器。
缓存重定向方法#
Web 缓存协调协议(WCCP)#
路由器会评估一个分组的目的地址,并用代理或镜像服务器的 IP 地址将重定向分组组装起来,这样客户端的 IP 地址就不会丢失了。
因特网缓存协议(ICP)#
代理缓存会在一组兄弟代理缓存中查询所请求的内容。
缓存阵列路由协议(CARP)#
允许缓存请将其转发给一个父缓存。与 ICP 不同的是,高速缓存上的内容是不相交的,这组缓存会想一个大型缓存那样。
超文本缓存协议(HTCP)#
参与的代理缓存可以向一组兄弟缓存查询所请求的内容。
第 21 章 日志记录与使用情况跟踪#
暂无笔记。
推荐文章: