我的博客上已经有很多这样的ats安装实录了,这次的笔记有些不一样,因为它是ATS目前最新的LTS版本6.2.1的安装,写出来更多的是整理自己的思路,因为很多东西搞过不整理,过一段时间就完全忘记掉了。
安装环境:
在rMBP 15.4上上面安装了VMware Fushion 专业版8.5.1,操作系统是MacOS Sierra 10.12.3,在VMware上安装的是CentOS 6.8 x86_64
下面是安装步骤:
1.安装依赖包
yum -y install git gcc gcc-c++ autoconf automake libtool pkgconfig pcre-devel tcl-devel expat-devel openssl-devel xz-devel boost-devel curl curl-devel ncurses ncurses-devel
yum -y install perl-ExtUtils-MakeMaker
yum -y install libcap libcap-devel hwloc hwloc-devel
yum -y install libunwind libunwind-devel
2.下载源码包并安装
wgethttp://apache.fayea.com/trafficserver/trafficserver-6.2.1.tar.bz2
下面我们假定使用ats用户来运行ATS 6.2.1并且根目录在/opt/ats下面,之所以指定这样的安装prefix是为了删除方便,不需要了直接删除整个目录就可以了。另外我一般会使用debug模式运行,便于发现和调试问题。
创建指定用户和组
id ats &>/dev/null || /usr/sbin/useradd -u 176 -r ats -s /sbin/nologin -d /
下面开始编译安装
tar jxvf trafficserver-6.2.1.tar.bz2
cd trafficserver-6.2.1
./configure --prefix=/opt/ats --with-user=ats --with-group=ats --enable-debug --enable-example-plugins --enable-experimental-plugins
make
make install
查看生成的可执行文件,我们会额外注意到会生成traffic_top和traffic_line工具
3.下面是相应配置
[records.config]
CONFIG proxy.config.http.server_ports STRING 18980
CONFIG proxy.config.http2.enabled INT 0
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
#no ssl and cpu affinity
CONFIG proxy.config.ssl.number.threads INT 0
CONFIG proxy.config.exec_thread.affinity INT 0
[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
4.启动ats并测试功能是否正常
cd /opt/ats/bin
./trafficserver start
ps auxf | grep traffic
请求一个普通url来检查ats是否允许正常
curl -vx 127.0.0.1:18980 -o /dev/null 'http://news.sohu.com/'
执行traffic_top查看允许情况
./traffic_top
使用traffic_line来查看对应的配置变量
./traffic_line -r proxy.config.diags.show_location
重要声明:
1.如何编译生成traffic_top和traffic_line?
按照官网链接https://cwiki.apache.org/confluence/display/TS/CentOS的安装依赖并不会生成traffic_line和traffic_top这样的顺手工具,我们需要额外安装libcurl和ncurses开发库安装包,为此我们需要再追加下面的依赖库
yum -y install curl curl-devel
yum -y install ncurses ncurses-devel
2.如果是在虚拟机上,不用使用make -jxx,直接使用make就可以了,可能是虚拟机兼容性的问题,会导致编译失败问题