首页 > 在CentOS 6.3 64bit上安装ATS 5.3 LTS版本并测试

在CentOS 6.3 64bit上安装ATS 5.3 LTS版本并测试

由于ATS 5.3是社区刚推出的LTS最新版本,比以前的版本改动幅度相当大,所以我决定抛弃以前的经验,从零开始探索该版本。下面是我的摸索实录。



1.下载源码

cd /usr/local/src

wget -d "http://mirror.bit.edu.cn/apache/trafficserver/trafficserver-5.3.0.tar.bz2"

tar jxvf trafficserver-5.3.0.tar.bz2

cd trafficserver-5.3.0

进入源码目录,阅读README文件,获取在CentOS 6.3上面的安装指导,似乎看到的新东西不多,还是从官网安装指导开始

https://cwiki.apache.org/confluence/display/TS/CentOS



2.安装依赖包

yum -y install git gcc gcc-c++ autoconf automake libtool pkgconfig pcre-devel tcl-devel expat-devel openssl-devel

yum -y install perl-ExtUtils-MakeMaker

yum -y install libcap libcap-devel hwloc hwloc-devel

yum -y install libunwind libunwind-devel



3.确保系统日志开启

使用下面的命令

service rsyslog status

查看系统日志有没有打开,没有就开启,以避免下面启动ATS出错时没有任何日志信息。





创建ATS运行的用户名和组名

这一步非常关键,关系到后面make install步骤的顺利性,故拿到前面来做。

新建用户

useradd -s /sbin/nologin tserver

我们打算将tserver作为ATS所在的user和group名称。使用如下命令检测用户组是否创建成功

cat /etc/passwd |cut -f 1 -d : | grep tserver





4.编译安装

首先使用./configure -h来查看支持

./configure --prefix=/opt/ats --with-user=tserver --with-group=tserver --enable-reclaimable-freelist --enable-debug --enable-experimental-plugins  内网测试不加--enable-interim-cache 

make -j 4

make install -j 4



5.配置

主要有这几个文件需要配置:

records.config,storage.config,logs_xml.config

我要达到的效果是正反向代理,自定义磁盘,自定义日志等功能。注意records.config文件有很大的精简。

因为是公司内网虚拟机,配置较差,这里不对磁盘和缓存相关选项做配置了。

#records.config

CONFIG proxy.config.http.server_ports STRING 8081      #跟线上保持一致

traffic_line -s proxy.config.reverse_proxy.enabled -v 0

traffic_line -s proxy.config.url_remap.remap_required -v 0       #1为只反向代理,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.1 localhost (ApacheTrafficServer/4.2.3 [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

traffic_line -s proxy.config.cache.ram_cache_cutoff -v 40960      #非常关键,确定缓存命中是在RAM cache还是SSD中



CONFIG proxy.config.log.custom_logs_enabled INT 1

CONFIG proxy.config.log.squid_log_enabled INT 0

CONFIG proxy.config.log.xml_config_file STRING logs_xml.config



#logs_xml.config



 

  % % % [%] %<{X-Forwarded-For}cqh> "%" % "%" %:% %<{Referer}cqh> "%<{User-Agent}cqh>" %"/>





 

 





6.添加环境变量和设置别名

echo "export PATH=/opt/ats/bin:$PATH" >> /etc/profile

更新配置文件

source /etc/profile

再次确认环境变量是否添加成功

echo $PATH

这样的话,在命令行直接运行trafficserver start就可以识别了。

vim ~/.bashrc

在尾部加入

alias ats_db='cd /opt/ats/var/trafficserver;pwd'
alias ats_log='cd /opt/ats/var/log/trafficserver;pwd'
alias ats_conf='cd /opt/ats/etc/trafficserver;pwd'
alias ats_lib='cd /opt/ats/libexec/trafficserver;pwd'
alias ats_bin='cd /opt/ats/bin;pwd'
alias ats_stat='ps auxf | grep traffic | grep -v grep'
alias ats_ports='netstat -nltp | grep traffic | grep -v grep'

使文件生效

source ~/.bashrc



7.启动测试

trafficserver start

当启动OK后,使用下面的命令查看进程启动情况,多试几次,观察traffic_server进程pid是否有变动,如果有变动就说明启动过程有问题,需要排查详细问题

ps auxf | grep traffic | grep -v grep



下面使用curl来进行简单的测试

curl -o /dev/null -vx 127.0.0.1:8081  -H "Accept-Encoding: gzip,deflate,sdch" "http://news.sohu.com"

观察是否获取成功,如果获取成功,连续执行3次同一个请求,观察缓存状态的变化情况,是否是下面的状态码改变?

[cMsSfW] ==> [cHs f ] ==> [cRs f ] ==> ...





然后观察访问日志中是否有3条相应的访问记录



再次观察下面的几个日志文件



manager.log 专门负责监控traffic_server进程的运行情况,有异常情况时会重启traffic_server进程

diags.config 专门记录系统诊断日志,比如缓存索引文件,hostdb文件,清除磁盘情况,缓存是否可用等

traffic.out 专门记录控制台相关的日志信息,比如使用的root目录,发现比原来版本输入日志信息减少了









8.命令行工具探究

现在没有traffic_shell工具,但是增加了traffic_ctl,traffic_crashlog,traffic_via,traffic_layout等工具



这里特别提到另一个极其有用的工具traffic_crashlog,它随同trafficserver中的那三个进程一起启动,





时刻监视是否有traffic_server进程崩溃,如果出现崩溃现象,

就会在自动重启traffic_server进程的同时,打印相关的段错误信息,主要内容包括CPU,信号,各线程调用堆栈,records.config中的配置信息等等。



更多相关:

  • 转载自https://blog.zymlinux.net/index.php/archives/374 Apache Traffic Server的程序文件,与传统的服务器系统有大不同,这里我们将会对这些文件进行详细的解读,并尽可能的对程序的功能和基本用法、参数等进一步说明,以利于新入门的同学们快速上手。 本文中,我们以Fedor...

  • 我的博客上已经有很多这样的ats安装实录了,这次的笔记有些不一样,因为它是ATS目前最新的LTS版本6.2.1的安装,写出来更多的是整理自己的思路,因为很多东西搞过不整理,过一段时间就完全忘记掉了。 安装环境: 在rMBP 15.4上上面安装了VMware Fushion 专业版8.5.1,操作系统是MacOS Sierra 10...

  • 2011年我曾有机会精心研究了ATS Cache Module部分的大部分源码,也绘制了一些蹩脚的图片,但是对比专家和大牛的作品还相去甚远,下面的图片摘自Fall Summit 2014中的ATS committer Alan M. Carroll的ppt,仅作研读ATS源码时作参考和对照,更是对高手极致境界的尊崇和反思。...

  • 转载自https://blog.zymlinux.net/index.php/archives/129 首先申明本人是个实实在在的菜鸟,现在也只是搭建起来ats玩玩简单的,写本文只是为了给完全的小白一个参考而已。 本人刚开始接触ats的时候,从ats安装到配置也遇到了很多基本的问题,在查阅资料解决不了的时候基本都是豪哥耐心...

  • 转载自 https://blog.zymlinux.net/index.php/archives/540 ATS插件开发需要提前了解ATS的插件的一些设计思想,以及系统提供的一些不同方向。我们将会介绍ATS的基础开发知识,以利于后续的插件开发课程讲解。 ATS的SDK文档,是了解ATS的核心设计、接口设计的很重要资料,甚至是老...

  • ATS 5.3.0中的配置文件通常会标有详细的注释,但是我们有时候需要纯净的配置文件,特别是在线上部署的配置文件,不需要这么详细的注释。下面是处理过程。 cat records.config | grep -v ^$ | grep -v "#" > tao_627.config 命令解释: grep -v ^$去除空行 gre...

  • cat access.log | grep -v '127.0.0.1' | grep 'TCP_MISS' | awk -F '"' '{print $2}' | awk '{print $2}' | grep -v 'fromtag=' | grep -v '127.0.0.1' > miss_url.log...

  •   ldconfig -p | grep 库名(例如:lib***) 比如: ldconfig -p | grep libcrypto++  ...

  • linux grep命令 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式grep [options] 3.主要参数[opti...

  • 查看apache是否开启pidof httpdps -aux | grep httpdps -ef| grep httpdpgrep httpd开启[停止|重启]/usr/sbin/apachectl start[stop|restart]/etc/init.d/httpd start[stop|restart]service htt...