其他分享
首页 > 其他分享> > Apache Traffic Server安装配置

Apache Traffic Server安装配置

作者:互联网

 

 介绍

Apache Traffic Server(ATS或TS)是一个高性能的、模块化的 HTTP 代理和缓存服务器。Traffic Server 最初是 Inktomi 公司的商业产品,该公司在 2003 年被 Yahoo 收购,之后 Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8 月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4 月成为了 ASF 的顶级项目(Top-Level Project)。 Apache Traffic Server 现在是一个开源项目,开发语言为C++。

系统环境

操作系统:CentOS 7.9 X86_64
应用:Apache Traffic Server 7.0.0


#官网
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-7.0.0.tar.bz2
[root@web_01 pcre-8.36]# tar xf trafficserver-7.0.0.tar.bz2 
[root@web_01 pcre-8.36]# cd trafficserver-7.0.0  
[root@web_01 trafficserver-7.0.0]# ./configure --prefix=/usr/local/trafficserver --with-pcre=/usr/local/trafficserver/pcre --enable-example-plugins --enable-experimental-plugins
[root@web_01 trafficserver-7.0.0]# make  && make install
 注:--enable-example-plugins --enable-experimental-plugins 这两条指令是为了安装ATS官方集成的插件
[root@web_01 trafficserver-7.0.0]# cd /usr/local/trafficserver/bin/
[root@web_01 bin]# ./trafficserver start
Starting Apache Traffic Server:                            [  Ok

Traffic Server进程管理

 我们可以看到ATS服务启动了三个进程(traffic_cop、traffic_manager、traffic_server)来服务ats请求,管理,控制、监控系统的健康情况,如下图1所述:

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

 简单配置

 

#修改records.config文件
#25行
CONFIG proxy.config.http.server_ports STRING 80
#29行
CONFIG proxy.config.http.insert_response_via_str INT 2
#添加
CONFIG proxy.config.log.custom_logs_enabled INT 1
#添加
CONFIG proxy.config.log.xml_config_file STRING logs_xml.config
#添加
CONFIG proxy.config.diags.show_location INT 1
 
#修改remap.config文件添加如下:
regex_map http://(.*) http://$1
 
#修改logs_xml.config文件添加如下:
<LogFormat>
  <Name = "ats_access_log"/>
  <Format = "%<cqtd>/%<cqtt> %<cqhm> \"%<cquuc>\" %<pssc> %<ttms> %<cqhl> 
%<psql> %<crc> \"%<chi>\" %<pqsn> \"%<{Referer}cqh>\" \"%<psct>\" \"%<{User-agent}cqh>\"
 %<csssc> %<pqsi>"/>
</LogFormat>
 
<LogObject>
  <Format = "ats_access_log"/>
  <Filename = "access"/>
  <Protocols = "http"/>
  <RollingEnabled = "3"/>
  <RollingIntervalSec = "7200"/>
  <RollingSizeMb = "2048"/>
</LogObject>
 
#修改storage.config文件
var/trafficserver 4G
 
#重启服务
[root@controller bin]# pwd
/usr/local/trafficserver/bin
[root@controller bin]# ./trafficserver restart
#测试
[root@controller bin]# curl -vx 127.0.0.1:80 -o /dev/null 'http://news.sohu.com/'
* About to connect() to proxy 127.0.0.1 port 80 (#0)
*   Trying 127.0.0.1...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET http://news.sohu.com/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: news.sohu.com
> Accept: */*
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 200 OK
< Content-Type: text/html;charset=UTF-8
< Content-Length: 170289
< Server: ATS/7.0.0
< Date: Fri, 01 Dec 2017 03:26:44 GMT
< Cache-Control: max-age=120
< X-From-Sohu: X-SRC-Cached
< FSS-Cache: EXPIRED from 9206494.16415464.10543436
< Accept-Ranges: bytes
< FSS-Proxy: Powered by 3308164.4618894.4645016
< Age: 0
< Proxy-Connection: keep-alive
< Via: http/1.1 controller (ApacheTrafficServer/7.0.0 [cSsSfU])
< 
{ [data not shown]
100  166k  100  166k    0     0   152k      0  0:00:01  0:00:01 --:--:--  152k
* Connection #0 to host 127.0.0.1 left intact

record.conf

该文件是ATS的核心主配置文件

修改启动ATS用户

CONFIG proxy.config.admin.user_id STRING webserver 

将默认用端口更改为80,用于反向代理

CONFIG proxy.config.http.server_ports STRING 80

关闭VIA请求到原服务器头部信息

CONFIG proxy.config.http.insert_request_via_str INT 0

配置缓存服务器响应头部

CONFIG proxy.config.http.insert_response_via_str INT 2

启用所有的Accept-Encoding头部规范化:

CONFIG proxy.config.http.normalize_ae_gzip INT 1

关闭缓存动态内容

CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1

修改内存缓存大小,建议使用1/2或1/3物理内存

CONFIG proxy.config.cache.ram_cache.size INT 25297631232

修改缓存单个文件最大尺寸

CONFIG proxy.config.cache.ram_cache_cutoff INT 119430400

修改默认缓存算法

CONFIG proxy.config.cache.ram_cache.algorithm INT 1

修改当不配置主机时,自动跳转地址

proxy.config.header.parse.no_host_url_redirect STRING http://www.wapka.com

启于HTTP WEB UI,在文件底部添加以下两行

CONFIG proxy.config.http_ui_enabled INT 3

CONFIG proxy.config.http.enable_http_info INT 1

cache.conf

该文件是用于配置ATS的缓存时效等。为各类型的文件添加缓存过期时间

dest_domain=wapka.com suffix=gif revalidate=6h

dest_domain=wapka.com suffix=jpg revalidate=6h

dest_domain=wapka.com suffix=jpeg revalidate=6h

dest_domain=wapka.com suffix=png revalidate=6h

dest_domain=wapka.com suffix=bmp revalidate=6h

dest_domain=wapka.com suffix=swf revalidate=6h

dest_domain=wapka.com suffix=ico revalidate=6h

dest_domain=wapka.com suffix=js revalidate=6h

dest_domain=wapka.com suffix=css revalidate=6h

dest_domain=wapka.com revalidate=12h

stroage.conf

该文件是用于文件缓存的设置。修改缓存文件存储,当系统内核高于2.6.3时可以使用裸设备

/home5/data 250G

remap.conf

该文件主要是配置主机及回源地址

第一种:

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

第二种:
map http://s1.wapka.com/ http://s.wapka.in/

reverse_map http://s.wapka.in http://s1.wapka.com

还可以配置区别跳转

regex_redirect http://[0-9].wapka.in http://www.wapka.com

也可以配置防盗链,格式为:用户请求地址,回源地址,返回用户地址,允许的domain

map_with_referer down0.game.uc.cn/ugameun/(.*)?filename=(.*) http://down0.game.uc.cn/ugameun/$1 http://down0.game.uc.cn/ugameun/$2 *\.haha.cn

启用HTTP WEB UI

map http://localhost/cache-internal/ http://{cache-internal}

map http://localhost/cache/ http://{cache} @action=allow @src_ip=127.0.0.1

map http://localhost/stat/ http://{stat} @action=allow @src_ip=127.0.0.1

map http://localhost/test/ http://{test} @action=allow @src_ip=127.0.0.1

map http://localhost/hostdb/ http://{hostdb} @action=allow @src_ip=127.0.0.1

map http://localhost/net/ http://{net} @action=allow @src_ip=127.0.0.1

map http://localhost/http/ http://{http} @action=allow @src_ip=127.0.0.1

 

日常操作

启动、关闭、重启traffic_cop.(需要了解是的操作traffic_cop进程会影响其它两个进程)

bin/trafficserver start

bin/trafficserver stop

bin/trafficserver restart

启动、关闭traffic_server(以下操作需要先启动traffic_cop)

bin/traffic_line -U

bin/traffic_line -S

重启traffic_manager。

bin/traffic_line -L

重载配置文件

bin/traffic_line -x

清除全部缓存

bin/traffic_server -Cclear

清除指定缓存

URL=$2

HOST=`echo ${URL} | awk -F"/" '{print $3}'`

URI=`echo ${URL} | cut -d"/" -f4-`

curl -X PURGE -I -H Host:${HOST} http://127.0.0.1/$URI

查看日志

bin/traffic_logcat var/log/trafficserver/squid.blog

日志分析

bin/traffic_logstats var/log/trafficserver/squid

docker部署:

第一种:

docker run -d --name TrafficServer -p 8080:8080 shaker/trafficserver

第二种:

docker-trafficserver:用于运行 Apache Traffic Server (ATS) 的 Docker 配置
5.3.0

docker run -d --name trafficserver -p 8080:80 -p 8443:443 -e TRAFFICSERVER_HOST=47.99.57.254 -e TRAFFICSERVER_DEBUG=true eanushan/trafficserver

标签:http,--,Server,Traffic,proxy,trafficserver,Apache,traffic,config
来源: https://blog.csdn.net/weixin_45623111/article/details/122174588