2021-08-06

ATS简介

Apache Traffic Server(ATS或TS)是一个高性能的、模块化的HTTP代理和缓存服务器,与 Nginx 和 Squid 类似。它通过将频繁访问的信息缓存在网络的边缘来改善网络的效率和性能,使得访问内容在地里上更接近终端用户,在更快分发的同事也减少带宽的占用。
  Apache Traffic Server是个快速、可伸缩、可扩展、兼容于HTTP/1.1缓存代理的服务器,它具有如下特色:

  1. 缓存:改进响应时间的同时降低了服务器负载与对带宽的需求,这是通过缓存并且重用经常请求的网页、图片和Web Service调用实现的。
  2. 代理:很容易添加持续连接、过滤器或异步内容请求,还可以通过添加代理层实现负载平衡。
  3. 速度:在现代的SMP硬件上具有很好的可伸缩性,每秒钟可以处理数以万计的请求。
  4. 可扩展性:API考虑到了自定义插件,可以修改头与内容,还可以实现新的协议处理器。
  5. 可靠性:能够完美处理TB级别的数据,包括正向与反向代理。

因此,ATS可作为一个反向代理、web代理缓存以及可以部署在多级缓存。

作为反向代理,ATS需要配置为用户直接连接的源服务器(典型的用法是将源服务器的主机名解析到ATS),反向代理的功能也被叫做服务器加速。
 作为web代理缓存,ATS接收用户直接发往源站的web内容请求。如果ATS包含请求的内容,它将直接提供服务。如果请求的内容不再缓存里,ATS将作为一个代理;为用户从源站服务器获取请求的内容,并在本地保存一份拷贝以服务于将来相同的请求。
 ATS可以灵活地参与多级缓存,当internet请求不能在一个缓存中得到满足的时候,将被路由到其他区域的缓存,从而利用附近缓存的内容。在一个多级代理中,ATS可以作为其他ATS系统或者其他相似的缓存产品的父节点或者子节点。

ATS安装

#官网
https://trafficserver.apache.org/

安装环境
yum install 'liblz*' -y
yum install net-tools -y
yum install gcc gcc-c++ glibc-devel -y
yum install autoconf automake pkgconfig libtool -y
yum install perl-ExtUtils-MakeMaker perl-URI.noarch -y
yum install openssl-devel tcl-devel expat-devel -y
yum install pcre pcre-devel zlib-devel xz-devel -y
yum install libcap libcap-devel flex hwloc hwloc-devel -y
yum install lua-devel curl curl-devel sqlite-devel bzip2 -y
1.安装pcre
[root@web_01 pcre-8.36]# wget http://ftp.exim.llorien.org/pcre/pcre-     8.36.tar.gz
[root@web_01 pcre-8.36]# tar xf pcre-8.36.tar.gz  
[root@web_01 pcre-8.36]# cd pcre-8.36
[root@web_01 pcre-8.36]# ./configure --prefix=/usr/local/trafficserver/pcre
[root@web_01 pcre-8.36]# make && make instal
2.安装trafficserver
[root@web_01 ~]# cd /usr/local/src/
[root@web_01 src]# wget https://mirrors.aliyun.com/apache/trafficserver/trafficserver-5.3.2.tar.bz2
[root@web_01 pcre-8.36]# tar xf trafficserver-5.3.2.tar.bz2
[root@web_01 pcre-8.36]# cd trafficserver-5.3.2 
[root@web_01 trafficserver-5.3.2]# ./configure --prefix=/usr/local/trafficserver --with-pcre=/usr/local/trafficserver/pcre --enable-example-plugins --enable-experimental-plugins
[root@web_01 trafficserver-5.3.2]# make  && make install

注:–enable-example-plugins --enable-experimental-plugins 这两条指令是为了安装ATS官方集成的插件

[root@web_01 trafficserver-5.3.2]# cd /usr/local/trafficserver/bin/
[root@web_01 bin]# ./trafficserver start
Starting Apache Traffic Server:     

Traffic Server进程管理

[root@localhost ~]# ps aux|grep traffic
root      7469  0.0  0.0 129628  7248 ?        Ssl  04:57   0:02 /usr/local/tcacheserver/bin/traffic_cop
176       7472  0.0  0.0 501692 19660 ?        Sl   04:57   0:30 /usr/local/tcacheserver/bin/traffic_manager
176       7482 19.8 20.8 15253324 10279168 ?   Sl   04:57 118:31 /usr/local/tcacheserver/bin/traffic_server

我们可以看到ATS服务启动了三个进程(traffic_cop、traffic_manager、traffic_server)来服务ats请求,管理,控制、监控系统的健康情况,如下图1所述:
在这里插入图片描述
traffic_server 进程是ATS的事务处理引擎。负责接收和处理协议请求以及从本地缓存或源服务器提供资源。

traffic_manager进程是用来命令和控制ATS的工具,负责启动、监控以及重新配置端口、统计接口、集群管理以及VIP故障转移。如果traffic_manager进程检测到traffic_server进程失败,它不仅会立即重启该进程,而且会为所有转入的请求维护一个连接队列。在traffic_server重新启动前的几秒内传入的所有连接将被保存在一个队列,并以FIFO的方式处理,这个连接队列接收任何server故障重启时的连接。

traffic_top进程监控traffic_server和traffic_manager进程的健康状况。traffic_top进程通过抓取合成web页面的心跳请求方式周期性地(每分钟若干次)查询traffic_server和traffic_manager进程。如果失败事件发生(如果在超过时间间隔内没有收到请求或者收到错误的请求)traffic_top重启traffic_server和traffic_manager。

ATS简单配置

常用文件说明

ATS 的配置文件全放在/etc/trafficserver/ 目录下,基本是分模块配置,一个配置文件代表一种功能

/etc/trafficserver/ #主配置目录
├── ae_ua.config
├── cache.config          #Cache规则配置
├── cluster.config        #cluster机器列表,自动配置
├── congestion.config     #限流配置
├── default_cluster.config
├── health_check.config   #七层健康监测配置
├── hosting.config        #磁盘分区分配配置
├── icp.config            #icp查询配置
├── ip_allow.config       #ip访问控制配置
├── log_hosts.config      #
├── logs_xml.config       #日志系统配置
├── mgr.cnf
├── parent.config         #parent回源配置
├── plugin.config         #插件配置
├── plugin.db             
├── proxy.pac
├── records.config        #TS控制参数配置
├── remap.config          #业务规则配置
├── snapshots
├── socks.config
├── splitdns.config       #splitdns配置
├── ssl_multicert.config  #SSL 配置
├── stats.config.xml      #统计信息配置
├── storage.config        #存储配置
├── update.config         #预热配置
├── vaddrs.config         #
├── volume.config         #磁盘分区配置
└── wpad.dat

运行日志,记录TS的运行状态和一些debug信息

/var/log/trafficserver/traffic.out

访问出错的日志

/var/log/trafficserver/error.log

主要的配置文件:
records.config 是 key-value 格式的配置文件,负责大部分全局的选项设置,即主配置文件。
storage.config 用于指定磁盘存储。
remap.config 定义映射规则,用于请求的重写(rewrite),反向代理即在此配置

修改records.config文件

CONFIGproxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT2.0
CONFIG proxy.config.exec_thread.limit INT2   #经观察是每个核创建的线程数,官方文档中未提及
                                                                                                                                                                                                                                                     
CONFIG proxy.config.cluster.ethernet_interface STRING eth0 # 设置以太网接口
CONFIG proxy.config.http.server_port  INT 8080  # 监听端口,反向代理通常为80
LOCAL proxy.local.incoming_ip_to_bind STRING  0.0.0.0# 绑定的 IP,可省略,默认即为 0.0.0.0
                                                                                                                                                                                                                                                     
CONFIG proxy.config.http.cache.http INT 1 #打开缓存功能
CONFIG proxy.config.cache.ram_cache.size INT 512M  # RAM 缓存大小
                                                                                                                                                                                                                                                     
CONFIG proxy.config.reverse_proxy.enabled INT 1   # 打开
CONFIG proxy.config.url_remap.remap_required INT 1 #1为只反向代理,0为正向+反向代理
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
CONFIG proxy.config.ssl.enabled INT 0 #关闭SSL
CONFIG proxy.config.ssl.server.cert.filename STRING server.pem
CONFIG proxy.config.http.server_max_connections INT 2000  # 同源服务器的最大连接数
CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 60 # 当一个事务结束后同原服务器保持连接的时间

修改remap.config文件

第一个用户访问163.com 第二个是 ats自动去访问163.com取源,当然也可以是ip地址

map    http://www.163.com  http://www.163.com

修改storage.config文件

/data/cache1 20GB

此外,还有header.config文件

常用命令

./traffic_line -r proxy.node.cache_hit_ratio_avg_10s #查询当前缓存服务命中率
./traffic_line -r proxy.node.current_server_connections #到后端源的连接数
./traffic_line -r proxy.node.current_client_connections #前端用户到TServer的连接数
./traffic_line -r proxy.node.user_agent_xacts_per_second #平均每秒处理的并发数
./traffic_line -r proxy.node.client_throughput_out #当前TServer输出到前端的带宽流量(单位Mbps)
./traffic_line -L#在不重启服务的情况下,使新配置生效,单结点模式,也有集群模式,注意看--help

服务开启

运行 /usr/local/bin/trafficserver start
结束 /usr/local/bin/trafficserver stop
重启 /usr/local/bin/trafficserver restart

查看运行情况

[root@controller bin]# ./traffic_top
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值