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严格遵守客户端Cache-Control: no-cache的指示。如果一个被请求的对象包含no-cache头部,即使它在缓存中仍然有效,Traffic Server也会将该请求传递给源服务器。可以配置Traffic Server忽略客户端no-cache指示,这样它将忽略客户端请求的no-cache头部并用缓存中的对象服务该请求。

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

1.        在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2.        编辑下面的变量:

变量 描述
proxy.config.http.cache.ignore_client_no_cache 设置这个变量为1来忽略客户端请求旁路缓存。

3.        保存并关闭records.config文件

4.        定位到Traffic Server的bin目录

5.        运行traffic_line –x命令来应用配置文件的变更。

源服务器指示

默认情况下,Traffic Server不缓存包含如下响应头部的对象:

  • Cache-Control: no-store头部
  • Cache-Control: private头部
  • WWW-Authenticate: 头部

要配置Traffic Server忽略WWW-Authenticate头部,见Configuring Traffic Server to Ignore WWW-Authenticate Headers。

  • Set-Cookie: 头部
  • Cache-Control: no-cache头部

要配置Traffic Server忽略no-cache头部,见Configuring Traffic Server to Ignore Server no-cache Headers。

  • Expires: 头部包含0值或过去时间

配置Traffic Server忽略服务器no-cache头部

默认情况下,Traffic Server严格遵守Cache-Control: no-cache指示。一个来自源服务器的带有no-cache头部的响应将不会被存储在缓存,该对象之前在缓存中的拷贝也会被删除。如果配置 Traffic Server忽略no-cache头部,Traffic Server同时也忽略no-store头部。在大多数情况下是应该遵守no-cache指示的。

配置Traffic Server忽略服务器no-cache头部

1.        在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2.        编辑下面的变量:

变量 描述
proxy.config.http.cache.ignore_server_no_cache 设置这个变量为1来忽略服务器旁路缓存。

3.        保存并关闭records.config文件

4.        定位到Traffic Server的bin目录

5.        运行traffic_line –x命令来应用配置文件的变更。

配置Traffic Server忽略WWW-Authenticate头部

默认情况下,Traffic Server不缓存包含WWW-Authenticate响应头部的对象。WWW-Authenticate头部包含着客户端准备用来响应源服务器挑战应答的鉴定参数。

当配置Traffic Server忽略源服务器的WWW-Authenticate头部,所有带WWW-Authenticate头部的对象将被存储在缓存中被用来服务后来的 请求,在大多数情况下,应该使用默认的不缓存带WWW-Authenticate头部对象的行为。只有在对HTTP 1.1深入理解的基础上,再尝试配置Traffic Server忽略服务器WWW-Authenticate头部。

配置Traffic Server忽略WWW-Authenticate头部

1.        在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2.        编辑下面的变量:

变量 描述
proxy.config.http.cache.ignore_authentication 设置这个变量为1来缓存带WWW-Authenticate头部的对象。

3.        保存并关闭records.config文件

4.        定位到Traffic Server的bin目录

5.        运行traffic_line –x命令来应用配置文件的变更。

配置指示

除了客户端和服务器的指示,Traffic Server同样响应配置选项和文件的指示。

可以按如下步骤来配置Traffic Server:

l  不缓存任何对象(见Disabling HTTP Object Caching)。

  • 缓存动态内容 — 对象的URL以.asp结尾或者包含问号(?)、分号(:)或者cgi。更多信息见Caching Dynamic Content。
  • 缓存响应Cookie: 头部的对象(见Caching Cookied Objects)。
  • 遵守cache.config文件中的从不缓存规则(见cache.config)。

关闭HTTP 对象缓存功能

默认情况下,Traffic Server缓存除了在cache.config文件中设置了从不缓存规则的所有对象。可以关闭HTTP 对象缓存功能,所有的对象都直接由源服务器服务而且从不缓存。

手动配置关闭HTTP对象缓存功能:

1.        在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2.        编辑下面的变量:

变量 描述
proxy.config.http.cache.http 设置这个变量为0来关闭HTTP对象缓存功能。

3.        保存并关闭records.config文件

4.        定位到Traffic Server的bin目录

5.        运行traffic_line –x命令来应用配置文件的变更。

缓存动态内容

一个以.asp结尾或包含问号(?)、分号(;)或者cgi的URL被认为是动态的。Traffic Server不缓存冬天内容。可以配置Traffic Server缓存动态内容,当然这只推荐在专门的代理情形下使用。

配置Traffic Server缓存动态内容:

1.        在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2.        编辑下面的变量:

变量 描述
proxy.config.http.cache_urls_that_look_dynamic 设置这个变量为1来缓存动态内容。

3.        保存并关闭records.config文件

4.        定位到Traffic Server的bin目录

5.        运行traffic_line –x命令来应用配置文件的变更。

缓存Cookied对象

默认情况下,Traffic Server缓存为包含cookies请求服务的响应对象(除了文本对象)。Traffic Server之所以不缓存文本内容的cookied,是因为对象的头部和对象是一起存储的,而带有隐私的cookie头部是不能和对象一起保存的。对于非 文本对象,不能确定是否使用了带有隐私的cookie头部。

可以配置Traffic Server:

  • 不缓存任何类型的cookies内容。
  • 只缓存图片类型的cookies内容。
  • 缓存所有的cookies内容。

配置Traffic Server缓存cookied内容的方式:

1.        在文本编辑器中打开位于Traffic Server的config目录下的records.config文件。

2.        编辑下面的变量:

变量 描述
proxy.config.http.cache.cache_responses_to_cookies 设置这个变量来指定Traffic Server缓存cookied内容的方式:

0 = 不缓存任何cookies响应。

1 = 缓存所有的cookies响应。

2 = 只缓存图片类型的cookies响应。

3 = 缓存除了文本内容类型的所有cookies响应。

3.        保存并关闭records.config文件

4.        定位到Traffic Server的bin目录

5.        运行traffic_line –x命令来应用配置文件的变更。

原文出处:http://rdc.taobao.com/blog/cs/?p=518