一、下载&解包
上官网下载吧,http://www.apache.org/dyn/closer.cgi/trafficserver/trafficserver-3.2.0.tar.bz2
其它地方也有,这个东西还是使用官网的比较好。
当然你可以自己改源码DIY,,那就看你的情况
二、安装
./configure --prefix=/usr/local/ats && make && make install
这里可能碰到三种错误,对于centos6系列
checking for Tcl configuration... configure: error: Can't find Tcl configuration, install the TCL dev package
解决办法:
yum -y install tcl tcl-devel
configure: error: check for pcre failed. Have you installed pcre-devel?
源码编译pcre
下载 http://www.pcre.org/ 然后解压,编译安装
./configure && make && make install
再 /etc/ld.so.conf 中加入 /usr/local/lib
ldconfig 生效
configure: error: Need at least a XML library --with-expat supported
缺个库
yum install expat-devel
源码编译也可以,一般对于这种基础库一般是yum安装。
make;make install 就收工了。
三 配置使用
TServer的配置文件都在 安装目录/etc/trafficserver下,修改如下文件:
主配置文件 records.config
CONFIG proxy.config.proxy_name STRING cache1 ### 修改成cache的server name即可
CONFIG proxy.config.cluster.ethernet_interface STRING eth0 ### 修改成需要侦听的interface名称,默认是 null
CONFIG proxy.config.admin.user_id STRING root ### 用来运行 traffic server 的用户,默认是nobody
CONFIG proxy.config.http.server_port INT 80 ### traffic server 侦听的端口,默认是8080,如果是配置为缓存,则需要改为80
proxy 代理配置remap.conf
如果要对 www.example.com加速或缓存,则写为:
map http://www.example.com http://ip(或者域名)
前者为用户访问的域名,后者为缓存源(可以使用内部域名,使得读源操作可以在多台源web server上轮询)
Note:
从配置文件例子里看到这样的写法:
map http://foo.cow.com/ http://bar.cow.com @src_ip=10.72.118.51-10.72.118.62 @method=GET @method=DELETE @src_ip=192.168.0.1-192.168.0.254 @action=allow @method=PUT
单从语法分析,TS支持对后端源手动指定分组,可针对不同的分组实施不同的http指令,很好很强大~
Traffic server的防盗链配置:
首先,修改record.conf,确保如下这行
CONFIG proxy.config.http.referer_filter INT 1
配置无误;
接着,修改remap.conf,添加类似配置语句如下:
map_with_referer fromURL toURL redirectURL refererRegExp1 [refererRegExp2 ... refererRegExpN]
配置参数大致解释如下:
fromURL:用户访问的url地址;
toURL:后端cache源的地址
redirectURL:当用户请求不是合法的来源时(即用户来源可能是盗链啦),返回给用户的重定向地址;
refererRegExp1~N:用来匹配refer的规则;
举例如下:
map_with_refer http://img.joke.com/ http://12.34.56.78 http://www.joke.com/error.jpg.*\.tianya\.cn .*\.hainan\.net
解释:只有来自*.tianya.cn和*.hainan.net的refer请求,才能访问img.joke.com下的内容,其他用户访问将被重定向到http://www.joke.com/error.jpg,cache源是http://12.34.56.78 ;
map_with_referer http://y.foo.bar.com/x/yy/ http://foo.bar.com/x/yy/http://games.bar.com/new_games * ~.*\.evil\.com
解释:除了来自*.evil.com的请求以外,允许其他任意地址refer过来的请求;
最后,确认map_with_refer配置语句正确后,记得注释掉之前的map配置,否则防盗链是没有效果的;
缓存配置storage.config
最简单的写法,指定目录以及缓存文件大小:
/cache1 80G
/cache2 80G
也可以看示例配置文件,上面有写法,读读英文就可以了。
注:如果storage.config配置不对,或者根本未配置,则TSserver会自动运行在代理模式下。
Note:
如果服务器有多个大点的分区,甚至是多个硬盘,那么可以将缓存文件定义到位于不同分区的目录上,当然硬盘没必要那么大,一个分区有一两百G足够了,TSserver写入的缓存文件基本不会太大。分配好后,即使某个分区出问题,导致其上的缓存文件无法读取,TSserver也会自动识别到错误,并屏蔽到该问题文件的读写,当所有分区上的缓存文件都出现问题时,TSserver会自动切换到代理模式工作;
好,到这里就可以启动了:
/usr/local/trafficserver/bin/trafficserver start
程序日志默认在var/log/ 下面。 其中一个traffice.out 是非常重要的。
四、关于TSserver命令行:
TServer提供很丰富的命令行操作,可以通过命令行实现查看服务状态、修改配置、启停服务等操作,看资料,TServer还提供了接口,允许用户编写自己的定制命令;
TSserver命令行一般都以traffic开头,默认放在 安装目录/bin下;
TServer缓存模式常用命令行如下:
./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
五、资源下载
新浪和TAOBAO都有使用这种新的cache,这是部分新出来的总结文件,可以收藏看一看。
http://blog.sina.com.cn/s/blog_502c8cc40100mw7n.html