trafficserver常用操作梳理

TrafficServer常用配置记录

项目上经常会用到trafficserver来作为缓存服务,下面的一些配置是项目中经常使用到的一些配置,记录一下。

Traffic Server 是一个高性能的开源反向代理和缓存服务器,由 Apache 基金会开发和维护。它被设计用于提供高吞吐量、低延迟的 Web 服务,并且非常适合作为反向代理、缓存和负载均衡器使用。

Traffic Server 的主要特点和功能包括:

  1. 反向代理:Traffic Server 可以作为反向代理服务器,接收客户端请求,并将请求转发到后端服务器。它能够处理大量并发连接,并提供高性能的请求转发和响应处理。
  2. 缓存:Traffic Server 支持强大的缓存功能,可以缓存静态和动态内容,以减轻后端服务器的负载并提高响应速度。它能够根据缓存策略、响应头和其他规则来决定哪些内容可以缓存,以及如何处理缓存中的内容。
  3. 内容路由和负载均衡:Traffic Server 可以根据配置的规则将请求路由到不同的后端服务器,实现负载均衡和流量分发。它支持多种负载均衡算法和健康检查机制,以确保请求被平均分配到可用的服务器上。
  4. Web 加速:Traffic Server 提供了多种技术和功能,用于加速 Web 服务的响应速度。它支持 HTTP/2、HTTP/3、TLS 加速、压缩、请求合并和优化,以及其他性能优化技术,从而提供更快的网页加载和更好的用户体验。
  5. 高可用性和可扩展性:Traffic Server 具有高可用性和可扩展性的特性。它支持多台服务器的集群部署,可以通过添加更多的实例来扩展处理能力。此外,Traffic Server 还提供了故障转移和容错机制,以确保服务的连续性和可用性。

Traffic Server 是一个功能强大且灵活的反向代理和缓存服务器,适用于高负载的 Web 环境。它被广泛应用于大型网站、内容分发网络(CDN)、广告网络和其他需要高性能和可扩展性的应用场景。

recore.conf配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
## 基本配置

CONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 1.5
CONFIG proxy.config.exec_thread.limit INT 2
CONFIG proxy.config.accept_threads INT 1
CONFIG proxy.config.task_threads INT 2
CONFIG proxy.config.cache.threads_per_disk INT 8
CONFIG proxy.config.exec_thread.affinity INT 1

## 这里会配置监听的端口,以及开启via头部配置,也就是看是否缓存命中的配置

CONFIG proxy.config.http.server_ports STRING 80 80:ipv6
CONFIG proxy.config.http.insert_request_via_str INT 3
CONFIG proxy.config.http.insert_response_via_str INT 2

CONFIG proxy.config.http.parent_proxy_routing_enable INT 0
CONFIG proxy.config.http.parent_proxy.retry_time INT 300
CONFIG proxy.config.http.parent_proxy.connect_attempts_timeout INT 30
CONFIG proxy.config.http.forward.proxy_auth_to_parent INT 0
CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 1
CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 120
CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 120
CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 30
CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 30
CONFIG proxy.config.http.transaction_active_timeout_in INT 900
CONFIG proxy.config.http.transaction_active_timeout_out INT 0
CONFIG proxy.config.http.accept_no_activity_timeout INT 120
CONFIG proxy.config.net.default_inactivity_timeout INT 86400
CONFIG proxy.config.http.connect_attempts_max_retries INT 3
CONFIG proxy.config.http.connect_attempts_max_retries_dead_server INT 1
CONFIG proxy.config.http.connect_attempts_rr_retries INT 3
CONFIG proxy.config.http.connect_attempts_timeout INT 30
CONFIG proxy.config.http.post_connect_attempts_timeout INT 1800
CONFIG proxy.config.http.down_server.cache_time INT 60
CONFIG proxy.config.http.down_server.abort_threshold INT 10
CONFIG proxy.config.http.negative_caching_enabled INT 0
CONFIG proxy.config.http.negative_caching_lifetime INT 1800
CONFIG proxy.config.http.insert_client_ip INT 1
CONFIG proxy.config.http.insert_squid_x_forwarded_for INT 1
CONFIG proxy.config.http.push_method_enabled INT 0
CONFIG proxy.config.http.cache.http INT 1
CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1
CONFIG proxy.config.http.normalize_ae_gzip INT 1
CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 1
CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1
CONFIG proxy.config.http.cache.when_to_revalidate INT 0
CONFIG proxy.config.http.cache.required_headers INT 1

#这里是配置全局的缓存时间配置
CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 60
CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 120

CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.10
CONFIG proxy.config.net.connections_throttle INT 30000
CONFIG proxy.config.net.max_connections_in INT 30000
CONFIG proxy.config.net.max_connections_active_in INT 10000
CONFIG proxy.config.cache.ram_cache.size INT -1
CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304
CONFIG proxy.config.cache.limits.http.max_alts INT 5
CONFIG proxy.config.cache.max_doc_size INT 0
CONFIG proxy.config.cache.min_average_object_size INT 8000
CONFIG proxy.config.log.logging_enabled INT 3
CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
CONFIG proxy.config.log.max_space_mb_headroom INT 1000
CONFIG proxy.config.log.rolling_enabled INT 1
CONFIG proxy.config.log.rolling_interval_sec INT 86400
CONFIG proxy.config.log.rolling_size_mb INT 10
CONFIG proxy.config.log.auto_delete_rolled_files INT 1
CONFIG proxy.config.log.periodic_tasks_interval INT 5
CONFIG proxy.config.url_remap.remap_required INT 1

#hdr配置 保留请求中的客户端主机标头
CONFIG proxy.config.url_remap.pristine_host_hdr INT 1

CONFIG proxy.config.reverse_proxy.enabled INT 1
CONFIG proxy.config.ssl.client.verify.server INT 0
CONFIG proxy.config.ssl.client.CA.cert.filename STRING NULL
CONFIG proxy.config.ssl.server.cipher_suite STRING ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
CONFIG proxy.config.diags.debug.enabled INT 0
CONFIG proxy.config.diags.debug.tags STRING http.*|dns.*
CONFIG proxy.config.dump_mem_info_frequency INT 0
CONFIG proxy.config.http.slow.log.threshold INT 0

#配置trafficserver server头部的配置
CONFIG proxy.config.http.response_server_str STRING UCache
CONFIG proxy.config.http.response_via_str STRING UCache
CONFIG proxy.config.proxy_name STRING UCache

remap.conf

1
regex_map http://(.*)/ http://10.145.199.45/

cache.config

cache.config文件定义trafficserver怎么缓存Web对象。

1
2
3
# 样例
dest_domain=mydomain.com suffix=gif revalidate=6h
url_regex=.* scheme=http ttl-in-cache=240h

其他配置

动态内容是否缓存

1
proxy.config.http.cache.cache_urls_that_look_dynamic   0|1  (0是不缓存,1是可缓存) 

带cookie的资源是否缓存

1
2
3
4
5
6
proxy.config.http.cache.cache_responses_to_cookies INT  0|1|2|3|4 
0、任何带cookie的资源都不缓存;
1、任何带cookie的资源都缓存;
2、只缓存是图片的cookie资源;
3、除了文本类型其余的cookie资源都缓存。
4、除了系统响应的没有”Set-Cookie”或者有”Cache-Control:public”的文本类型其余的cookie资源都缓存。

故障信息是否缓存

1
2
proxy.config.http.negative_caching_enabled  0|1  (1对所有故障信息都缓存,0是只缓存有明确生命周期的故障信息,线上默认使用的是0)
proxy.config.http.negative_caching_lifetime 2s (对有明确缓存生命周期的故障信息的缓存时间,可以根据时间时间设置,目前线上默认改为2s)

清理缓存

1
2
3
4
5
6
7
8
9
10
# 清除单个缓存文件脚本

#!/bin/bash
URL=$1
host=`echo $URL|awk -F”/” ‘{print$3}’`
url=`echo $URL|cut -d”/” -f4-`
curl -X PURGE -I -H Host:$host http://127.0.0.1/$url

# 清理所有缓存
traffic_server -Cclear

storage.config

1
/dev/sdb  2T