Traffic Server 可以加速Internet访问,增强web站点性能,同时也提供前所未有的网络托管能力。

Traffic Server是什么

Traffic Server是一个高性能的web代理缓存,它通过将频繁访问的信息缓存在网络的边缘来改善网络的效率和性能。这使内容在地理上更接近终端用户,在更快分 发的同时也减少了带宽的使用。Traffic Server致力于通过充分利用现有可用的带宽来改善企业、ISP、骨干网提供商和大型企业内部网的内容分发。

Traffic Server部署选项

Traffic Server有如下部署方式:

  • 作为一个web代理缓存
  • 作为一个反向代理
  • 部署在多级缓存

Traffic Server作为web代理缓存

作为web代理缓存,Traffic Server接收用户直接发往web server(源服务器)的web内容请求。如果Traffic Server包含请求的内容,它将直接提供服务。如果请求的内容不在缓存里,Traffic Server将作为一个代理:为用户从源服务器取得请求的内容,并在本地保存一份拷贝用以服务将来相同的请求。
Traffic Server提供直接代理缓存功能,这需要配置用户的客户端软件将请求直接发送给Traffic Server。直接代理缓存将在“直接代理缓存”节讲述。

Traffic Server作为反向代理

作为反向代理,Traffic Server需要配置为用户直接连接的源服务器(典型的用法是将源服务器的主机名解析到Traffic Server)。反向代理的功能也被称为服务器加速。反向代理的更多细节将在反向代理和HTTP重定向中描述。

Traffic Server部署在多级缓存


Traffic Server可以灵活地参与多级缓存,当Internet请求不能在一个缓存中得到满足的时候,将被路由到其他区域的缓存,从而利用附近缓存的内容。在一 个多级代理中,Traffic Server可以作为其他Traffic Server系统或者和其相似的缓存产品的父节点或者子节点。
Traffic Server支持ICP(Internet Cache Protocol)互连。多级缓存的更多细节将在多级缓存中介绍。

Traffic Server组件

Traffic Server由若干一起工作的组件来组成一个便于监控和配置的web代理缓存。这些主要的组件将在下面介绍。

Traffic Server缓存

Traffic Server缓存由高速对象数据库Object store组成。对象数据库通过URL和相关的头部来索引对象。使用先进的对象管理,Object store可以缓存同一个对象(可能是不同的语言或编码类型)的替换版本。它同样可以高效地存储非常小和非常大的对象,从而最小化浪费的空间。当缓存被占 满后,Traffic Server通过删除过期的数据来保证经常被请求的对象容易获取并有效。
Traffic Server被设计为容忍做缓存的磁盘全部失败。如果磁盘完成失败,Traffic Server会标记整个磁盘为被占用同时继续使用余下的磁盘。如果缓存的所有磁盘都失败了,Traffic Server会自动切换为单纯代理模式。可以对缓存进行分区来为专门的协议和源服务器存储数据预存一定数量的磁盘空间。更多关于缓存的信息见配置缓存。

RAM缓存

Traffic Server维护着一个包含热点对象的微型RAM缓存。这个RAM缓存在尽可能快地服务大部分热点对象的同时也减少了磁盘负载,特别是在一些流量的高峰。可以根据需要来配置RAM缓存的大小;更多的细节见改变RAM缓存大小。

Host数据库

Traffic Server host数据库存储着源服务器连接的Traffic Server以满足用户请求域名服务器(DNS)。这个信息用来适应未来协议的交互以及性能的优化。随着其他信息,host数据库包含:

  • DNS信息(加速主机名和IP地址的转换)
  • 每个host的HTTP版本(可以在先进的主机上使用增强的协议功能)
  • Host的可靠性和可用性信息(用户可以不用等待不工作的服务器)

DNS解析器

Traffic Server包含一个快速的、异步的DNS解析器来简化主机名和IP地址的转换。Traffic Server开始实现DNS解析器就是直接发送DNS命令数据包而不是依赖传统的慢速解析库。由于许多DNS查询可以并行发送,同时在内存的高速DNS缓 存中维持着热点绑定(DNS,IP),DNS流量减少。

Traffic Server进程

Traffic Server包括三个一起工作的进程来服务Traffic Server的请求,管理/控制/监控系统的健康状况。三个进程将会在下面描述:

  • traffic_server进程是Traffic Server的事务处理引擎。它负责接收连接、处理协议请求以及从本地缓存或源服务器提供文档。
  • traffic_manager进程是用来命令和控制Traffic Server的工具,负责启动、监控以及重新配置traffic_server进程。traffic_manager进程同时负责代理自动配置端口、统计 接口、集群管理以及VIP故障转移。如果traffic_manager进程检测到traffic_server进程失败,它不仅会立即重启该进程,而且 会为所有传入的请求维护一个连接队列。在traffic_server重新启动前的几秒内传入的所有连接保存在一个队列,以FIFO的方式处理。这个连接 队列接收任何server故障重启时的连接。
  • traffic_cop进程监控traffic_server和traffic_manager进程的健康状况。traffic_cop进程通过 抓取合成web页面的心跳请求方式周期性地(每分钟若干次)查询traffic_server和traffic_manager进程。如果失败事件发生 (如果在超时时间间隔内没有收到请求或者收到错误的请求),traffic_cop重启traffic_server和traffic_manager进 程。

下图说明了三个进程的关系。

管理员工具

Traffic Server提供如下的管理选项:

  • Traffic Line 命令行接口是一个基于文本的接口,通过它不但可以监控Traffic Server的性能和网络流量,而且可以配置Traffic Server系统。通过Traffic Line可以执行单条命令或者是一系列命令组成的shell脚本。
  • Traffic Shell命令行接口是一个附加的命令行工具,通过它同样可以执行单个监控命令以及配置Traffic Server系统。
  • 各种各样的配置文件可以通过一个简单的文件编辑器以及信号处理接口来配置Traffic Server。任何通过Traffic Line或者Traffic Shell的更改都会自动地同步到配置文件。

流量分析选项

Traffic Server为流量分析和监控提供了若干选项:

  • Traffic Line和Traffic Shell可以用来收集和处理从网络流量信息中获取的统计数据。
  • 事务日志记录了(在一个日志文件中)Traffic Server接收的每个请求以及每个检测到的错误。通过分析日志文件,可以确定有多少人使用了Traffic Server的缓存,每人请求了多少信息以及哪些页面是最热的。同样也可以查看一个特定事务出错的原因以及特定时间Traffic Server的状态。比如,可以看到Traffic Server重启或者集群通信超时等状况。

Traffic Server支持若干标准的日志文件格式,比如Squid和Netscape以及其自定义的格式。可以通过现成的分析包来分析标准格式的日志文件。为了便于日志文件分析,可以按协议或者主机来分开生成日志文件。
流量分析选项的更多细节会在流量监控中描述,Traffic Server日志选项的描述在Working with Log Files。

Traffic Server安全选项

Traffic Server提供了许多选项来确保Traffic Server系统和网络上的其他计算机进行安全的通信。安全选项如下:

  • 控制客户端对Traffic Server代理缓存的访问。
  • 通过配置Traffic Server使用多个DNS服务器来匹配站点的安全配置。比如,Traffic Server可以使用不同的DNS服务器来解析防火墙内部或外部的主机名。这使得在保持内部网络配置安全的情况下,同时可以继续透明地访问 Internet外部网络。
  • 配置Traffic Server在用户访问Traffic Server缓存内容之前对其做身份验证。
  • 在反向代理模式中,客户端和Traffic Server,以及Traffic Server和源服务器之间使用SSL终止选项来进行安全连接。
  • 通过SSL控制访问。

Traffic Server安全选项更详细的描述见安全选项。

文章出处:http://rdc.taobao.com/blog/cs/?p=485