Web主机托管
对内容资源的存储、协调以及管理的职责统称为Web主机托管。主机托管是Web服务器的主要功能之一。
主机托管服务
专业化管理的Web主机托管服务:服务级别有多种。
专用托管
虚拟主机托管
使用专用服务器托管费用比较大。
许多Web托管服务商通过让一些顾客共享一台服务器来提供便宜的Web主机托管服务:共享主机托管或者虚拟主机托管。 每个网站看起来是托管在不同的服务器上,但实际上是托管在同一个物理服务器上。
从最终用户的角度来看,被虚拟托管的网站应当和托管在专用服务器上的网站没什么区别。
虚拟服务器请求缺乏主机信息
HTTP/1.0规范中只发送了URL的路径部分,无法区分访问哪个具体的网站。
设法让虚拟主机托管正常工作
通过URL路径进行虚拟主机托管
可以通过分配不同的URL路径把共享服务器上的虚拟站点隔离开。
很少使用。
通过端口号进行主机托管
为不同的站点分配不同的端口号。
终端用户不接受非标准端口号。
通过IP地址进行主机托管
每个虚拟网站都分配一个或者多个唯一的IP地址。所有的虚拟网站的IP地址都绑定到一个共享的服务器上。
服务器可以查询HTTP连接的目的IP地址,并以此来判断客户端的目标网站。
消耗IP地址,但是应用还是非常广泛
通过Host首部进行主机托管
扩展HTTP,把主机名(和端口号)放在所有请求的Host扩展首部中传送。
使网站更可靠
镜像的服务器集群
服务器集群是一种配置相同的Web服务器,互相可以替换。每个服务器上的内容可以通过镜像复制,这样当某个服务器出现问题的时候,其他的可以顶上。
有两种方法可以把客户端的请求导向特定的服务器。
- HTTP重定向: 该内容的URL会解析到主服务器的IP地址,然后它会发送重定向到复制服务器。
- DNS重定向: 该内容的URL会解析到4个IP地址,DNS服务器可以选择发送个客户端的IP地址。
内容分发网络
内容分发网络(CDN)就是对特定内容进行分发的专属网络。这个网络中的节点可以是Web服务器、反向代理或缓存。
CDN中的反向代理缓存
复制原始服务器(replica origin web server)可以用反向代理缓存来代替。
反向代理可以向镜像服务器一样接受服务器请求。它们代表原始服务器中的一个特定的集合来接收服务器请求。
反向代理和镜像服务器之间的区别在于反向代理通常是需求驱动的。它们不会保存原始服务器的全部内容副本,它们只保存客户端请求的那部分内容。内容在其告诉缓存中的分布情况取决于它们收到的请求,原始服务器不负责更新它们的内容。 有些反向代理具有预取特性,可以在用户请求之前就从服务器上载入内容。
CDN中的代理缓存
与反向代理不同,传统的代理缓存能够收到发往Web服务器的请求(在代理缓存和原始服务器之间不需要有任何工作关系或IP地址约定)。但是与反向代理比起来,代理缓存的内容一般都是按需驱动的,不能指望它是对原始服务器的精确复制。某些代理缓存也可以预先载入热点内容。
让网站更快
CDN网络分发可以让网站更快。
对资源内容进行编码压缩也可以使网站更快。