Posts tagged traffic server

Traffic Server Net子系统分析

0

Traffic Server设计的思想是将一个大系统划分为若干个小的子系统,每个子系统负责专门的任务或应用。比如,Event子系统负责提供任务调度服务,Net子系统负责提供网络服务。每个子系统抽象为一个Processor,如图1所示。这种高内聚低耦合的设计原则使系统具有更好的重用性,维护性和扩展性。例如,如果hostDBProcessor需要进行DNS解析,可以直接调用dnsProcessor的相关函数,而无需关注DNS解析的细节;dnsProcessor也只需封装DNS请求和解析DNS应答,和网络相关的功能可以调用netProcessor来完成。Event子系统已经在 “Traffic Server多线程异步事件处理模型”中说明过了,下面简单介绍一下Net子系统。
(更多…)

Traffic Server多线程异步事件处理模型

6

多线程和异步事件处理是设计高并发和高性能服务器程序的主要技术,但很少有应用把两种技术组合在一起使用,原因是二者的组合会增加系统的复杂度,并使代码难以理解。多线程程序可以充分利用现代处理器多核的处理能力,使一个进程的多个任务可以并行执行,提高程序执行的效率。但多线程程序也有其不可回避的缺点。资源竞争导致的死锁,线程调度和切换带来的开销,限制了服务器程序处理连接的能力。异步事件处理程序避免了多线程的资源竞争和死锁,它通过事件循环来调度和执行代码,可以使服务器程序处理大量的连接。但异步处理程序只支持单核;一个事件处理函数处理过多事件会导致处理的延迟;对CPU密集型事件的处理会导致挂起事件的饥饿。如果在代码复杂度可控的情况下,很好地组合这两种技术,取其长而避其短,就能设计出高性能和高并发的服务器程序。Traffic Server多线程异步事件处理程序就是这类应用。
(更多…)

Traffic Server简介

0

Traffic Server 管理员指南v1.0

1

Traffic Server HTTP反向代理

0

在反向代理模式中,Traffic Server为Web服务器处理HTTP请求。反向代理模式的Traffic Server服务从客户端浏览器HTTP请求的方式如下图所示。

1.      客户端浏览器在80端口向名为www.host.com 的host发送一个HTTP请求。Traffic Server以源服务器的角色接收这个请求(源服务器的广告主机名被解析到Traffic Server)。

2.      Traffic Server在remap.config文件中定位映射规则并重新映射这个请求到一个指定的源服务器(realhost.com)。
(更多…)

Traffic Server 反向代理缓存

1

作为反向代理缓存,Traffic Server为源服务器服务请求。Traffic Server被配置成对客户端而言是正常的源服务器的方式。

理解反向代理缓存

通过前向代理缓存,Traffic Server为客户端处理发往远距离源服务器的web请求。反向代理缓存(又称服务器加速或虚拟主机托管)和前向代理不同,因为Traffic Server作为源服务器的代理缓存并存储内容。Traffic Server被配置为用户直接连接的源服务器(典型的用法是将源服务器的主机名解析到Traffic Server)。

反向代理解决方案

有多种方式使用Traffic Server作为一个反向代理。下面是一些例子场景。
(更多…)

Traffic Server 缓存HTTP对象

0

Traffic Server响应来自客户端、源服务器以及通过配置选项和文件指定的缓存指示。

客户端指示

默认情况下,Traffic Server不缓存含有如下请求头部的对象:

  • Cache-Control: no-store头部
  • Cache-Control: no-cache头部

配置Traffic Server忽略Cache-Control: no-cache头部,见Configuring Traffic Server to Ignore Client no-cache Headers。

  • Cookie: 头部(文本对象)

默认情况下,Traffic Server缓存为包含cookies请求服务的响应对象(除了文本对象)。可以配置Traffic Server不缓存任何类型的cookies内容、缓存所有的cookies内容或者只缓存图片类型的cookies内容。更多信息见Caching Cookied Objects。

  • Authorization: 头部

配置Traffic Server忽略客户端的no-cache头部

(更多…)

Traffic Server HTTP对象保鲜

1

当Traffic Server收到一个web对象的请求,它首先尝试着在缓存中定位该对象。如果该对象在缓存中,Traffic Server将会检查该对象是否仍然有效。对于HTTP对象而言,Traffic Server支持可选的作者自定义的有效期。Traffic Server坚持这些有效期;另外,它在对象被改变的频率和管理员选择的有效期方案之间挑选一个有效期。对象也可以和源服务器一起检查器有效来重新生效。

HTTP对象保鲜

Traffic Server通过如下的方式来判断缓存中的HTTP对象是否有效:

  • 检查Expires或者max-age头

一些HTTP对象包含Expires头或者max-age头来明确定义对象可以被缓存的时间。Traffic Server通过比较当前时间和有效期时间来决定该对象是否仍然有效。

  • 检查Last-Modified / Date头

如果HTTP对象没有Expires头或者max-age头,Traffic Server使用下面的公式来计算对象有效期:

freahness_limit = (date – last_modified) * 0.1

这里的date是对象服务器返回的日期,而last_modified是Last-Modified头部的日期。如果没有Last-Modified头部,Traffic Server就使用对象写入缓存的日期。因子0.1(10%)可以根据需要来增加或减小(见Modifying the Aging Factor for Freshness Computations)。
(更多…)

Traffic Server HTTP代理缓存

0

Web代理缓存可以用来存储高频访问的web对象(比如文档、图片等)以及为用户的请求提供这些信息。它在改善网络性能的同时,也为其他的任务空出了Internet的带宽。

理解HTTP Web代理缓存

Internet用户向遍布全球的web服务器发送请求。缓存服务器必须扮演成一个web代理服务器才能服务这些请求。对web代理服务器收到对web对象的请求,它可以选择服务这些请求或者将它们传递给源服务器(包含被请求信息源文件的服务器)。Traffic Server代理支持直接代理缓存方式,这种方式需要客户端软件配置成直接发送请求给Traffic Server代理。下面大概描述一下Traffic Server如何服务用户的请求。

1.      Traffic Server收到一个用户对web对象的请求。

2.      Traffic Server尝试着在其对象数据库(缓存)中用被请求对象的地址来定位该对象。
3.      如果对象在缓存中,Traffic Server会检查该对象是否过期,如果对象没有过期,Traffic Server以缓冲命中的方式用该对象来服务用户(见下图)。

缓存命中

4.      如果缓存中的数据已经过期,Traffic Server连接源服务器并检查该对象是否仍然可用(重新生效)。如果生效,Traffic Server直接发送缓存中的对象给用户。

5.      如果对象没有在缓存中(缓存未命中)或者源服务器显示缓存中的对象已经失效,Traffic Server会从源服务器重新获取该对象。该对象会同时发送给用户以及Traffic Server的本地缓存(见下图)。由于本地已经有了最新的缓存,后期对该对象的请求将会被更快的服务。

缓存未命中

实际的缓存会比上面的概述复杂的多。尤其是概述中没有讲述Traffic Server如何确保对象有效,正确地服务不同的HTTP版本以及处理那些对不能或不该被缓存的对象的请求。下面的部门将更细致地讨论这些问题。

Traffic Server Overview

5

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部署在多级缓存

(更多…)

Go to Top