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命令来应用配置文件的变更。