在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3

时间:2023-01-04 17:17:47
这篇博客是我整理的内网开发环境的ATS安装文档,以便日后参考。
下面的安装假定是以root用户身份进行的,Linux服务器已经安装好系统,磁盘已经做好分区。
1.新建用户
useradd -s /sbin/nologin tserver
我们打算将tserver作为ATS所在的user和group名称。使用如下命令检测用户组是否创建成功
cat /etc/passwd | cut -f 1 -d :
在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3

2.安装依赖包
yum install gcc gcc-c++ pkgconfig pcre-devel tcl-devel expat-devel openssl-devel -y
yum install perl-ExtUtils-MakeMaker -y
yum install libcap libcap-devel hwloc hwloc-devel -y
yum install libunwind libunwind-devel -y
yum install autoconf automake libtool -y
yum install git -y


3.下载并解压
cd /usr/local/src
wget -d "http://mirror.bit.edu.cn/apache/trafficserver/trafficserver-4.2.3.tar.bz2"
tar -jxvf trafficserver-4.2.3.tar.bz2 
cd trafficserver-4.2.3


4.编译和安装

根据CPU内核数来确定-j后面的参数,这里我是8核的CPU,所以选8

这步mkdir -p /opt/ats可以省略,因为不存在指定安装目录时ATS安装时会自动创建安装目录,同时为了内网测试方便,采用debug版本,线上可以去掉
./configure --prefix=/opt/ats --with-user=tserver --with-group=tserver --enable-reclaimable-freelist --enable-debug
make -j 8
make -j 8 install


这里指定安装前缀的好处是,如果安装失败,可以直接删除掉ats文件夹,再重新编译和安装。


5.配置
主要有这几个文件需要配置:
如果是正向代理测试,需要做如下配置
traffic_line -s proxy.config.reverse_proxy.enabled -v 0
traffic_line -s proxy.config.url_remap.remap_required -v 0
traffic_line -s proxy.config.url_remap.pristine_host_hdr -v 0


traffic_line -s  proxy.config.http.insert_request_via_str -v 1    
traffic_line -s  proxy.config.http.insert_response_via_str -v 2   #会产生类似Via:http/1.1localhost (ApacheTrafficServer/4.3.2 [cHs f ])的头
traffic_line -s proxy.config.http.cache.required_headers -v 0     #配置在源服务器没有定义缓存的情况缓存文件
traffic_line -s proxy.config.http.cache.enable_default_vary_headers -v 1


6.添加环境变量
echo "export PATH=/opt/ats/bin:$PATH" >> /etc/profile
更新配置文件
source /etc/profile
再次确认环境变量是否添加成功
echo $PATH
这样的话,在命令行直接运行trafficserver start就可以识别了。


7.启动查看
trafficserver start
确保如下有3个进程在运行:


8.浏览器测试
以firefox为例,设置代理服务器ip和端口,并在地址栏中输入网址进行测试,查看ATS业务插件的处理效果。这里选择火狐浏览器的原因是因为它的代理设置不是本机全局的代理设置。


9.安装中遇到的问题


10.业务插件测试
将本地编译好的几个动态库远程复制到/opt/ats/libexec/trafficserver/下面,同时将对应的配置文件复制到/opt/ats/etc/trafficserver/下面
根据不同的业务需要进行不同的配置来进行测试,通过main.config来确定开启哪几个业务功能。

11.安装Valgrind来调试内存泄露
cd /usr/local/src
wget -d "http://www.valgrind.org/downloads/valgrind-3.10.1.tar.bz2"
tar -jxvf valgrind-3.10.1.tar.bz2
cd  valgrind-3.10.1
./configure
make 
make install
查看命令选项

valgrind -h

在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3

检查ATS 4.2.3原版的内存泄露情况,以便心里有底
使用Valgrind跟踪内存泄露,以下面的方式开启ATS
valgrind --trace-children=yes --time-stamp=yes --leak-check=full --show-leak-kinds=definite  trafficserver start
使用下面的命令查看traffic进程是否都存在

ps auxf | grep traffic

在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3

同时刷新日志
tail -f /opt/ats/var/log/trafficserver/traffic.out

点击一些网页后,使用kill -9 pid依次杀掉ATS的3个相关进程,在traffic.out中查看内存泄露的地方

在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3

右侧可见,使用正向代理导致的内存泄露还不多。

参考文献
[1].https://cwiki.apache.org/confluence/display/TS/CentOS
[2].http://www.valgrind.org/downloads/current.html