Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1732395
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类:

2011-08-13 10:25:12

(2013.9.9更新部分说明)

转载请注明出处:http://blog.chinaunix.net/uid-26157679-id-2169083.html,谢谢~

 

一、下载&解包

wget

bzip2 -d trafficserver-3.0.1.tar.bz2

tar xvf trafficserver-3.0.1.tar

 

二、安装:

 

./configure --prefix=/usr/local/trafficserver

 

可能遇到的报错:

 

checking for Tcl configuration... configure: error: Can't find Tcl configuration, install the TCL dev package

解决办法:

yum -y install tcl tcl-devel

没有配yum源的可以手动安装包:

wget
tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure --prefix=/usr/local
make
make install
cd ..
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

 

configure: error: check for pcre failed. Have you installed pcre-devel?

解决办法:

yum -y install pcre-devel pcre

 

configure: error: Need at least one SSL library, --with-openssl is supported

解决办法:

yum -y install openssl-devel openssl

 

configure: error: Need at least one XML library, --with-expat is supported

解决办法:

yum -y install libxml2-devel

yum -y install expat-devel

 

以上错误在安装了对应软件包后,再编译就基本不会有其他错误了,然后

make;make install

安装完成;

 

三、配置:

TServer的配置文件都在 安装目录/etc/trafficserver下,修改如下文件:

 

主配置文件 records.config

 # CONFIG proxy.config.proxy_name STRING cache1

修改成cacheserver 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

#CONFIG proxy.config.cache.ram_cache.size INT -1

这个参数是配置traffic server可使用的内存大小的,默认值为-1,当工作在默认值下时,如配置指定本地cache大小为1G,则所使用的内存为100M,这肯定是不适用的,因此应该指定对应的内存大小,注意这里的单位是位,如设置为20480000,则是20MB,或者直接写10G也可以;

#CONFIG proxy.config.log.logging_enabled INT 0

这个参数是配置是否启用访问日志功能的,0为不记录日志,1为仅记录错误,2为仅记录访问,3为全纪录;

#CONFIG proxy.config.log.logfile_dir STRING /www/TServer_logs

指定访问日志输出的路径;

#CONFIG proxy.config.log.squid_log_enabled INT 1

指定访问日志输出格式为squid格式;

#CONFIG proxy.config.log.squid_log_is_ascii INT 1

使用字符方式输出访问日志,如为0则访问日志会保存为二进制格式,不利于查看;

#CONFIG proxy.config.log.squid_log_name STRING squid

指定访问日志的文件名,本例中指定输出的日志文件名为squid.log

#CONFIG proxy.config.http.normalize_ae_gzip INT 1

不同浏览器会发送不同版本的gzip请求头,ae_gzip 可以过滤大量无规律的 Accept-Encoding: 头信息,防止多个gzip 副本的产生,造成cache空间浪费;

#CONFIG proxy.config.http.insert_response_via_str INT (0|1|2)

控制在响应时向客户端浏览器输出的via信息,0为关闭,12均为开启,输出信息相对来说2比较多些,会包括hit OR miss信息;

 

proxy 代理配置remap.config


如果要对
加速或缓存,则写为:

map (或者域名)

前者为用户访问的域名,后者为缓存源(可以使用内部域名,使得读源操作可以在多台源web server上轮询);

如果需要做防盗链,则首先需要修改record.config如下配置为:

#CONFIG proxy.config.http.referer_filter INT 1

然后在remap.config中配置如下:

#map_with_referer .*\.haha\.cn .*\.haha\.net 

说明:对请求img.joke.cn的资源,都抛到后端这个源上,其中只允许*.haha.cn*.haha.net……等所列的域名才能引用该资源(白名单),来自其他域名的refer请求都视为盗链,盗链请求将会被返回这个地址;
(注:以上防盗链配置在新的3.2.4版本上测试生效,但不代表其他版本也可以工作)

Note

从配置文件例子里看到这样的写法:

map @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指令,很好很强大~

 

缓存配置storage.config

最简单的写法,指定目录以及缓存文件大小:

/cache1 80G

/cache2 80G

注:如果storage.config配置不对,或者根本未配置,则TS会自动运行在代理模式下。

 

 

四、关于TSserver命令行:

TServer提供很丰富的命令行操作,可以通过命令行实现查看服务状态、修改配置、启停服务等操作,看资料,TServer还提供了接口,允许用户编写自己的定制命令;

TSserver命令行一般都以traffic_line开头,默认放在 安装目录/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

 

附:开源测试小工具http_load:

http://blog.licess.org/http_load-webbench-ab-siege/






 

至此,TServer缓存模式的配置算是告一段落了,目前经过几天的运行,服务已经进入稳定期,查询命中率在95%~97%之间,这个命中率还是相当理想的。

 

过几天会根据自己在工作过程中用过的各类流行缓存,包括nginx、squid、Traffic Server、varnish等,做一个比较文档,有兴趣的朋友可以关注。

 

(留坑待填)

阅读(655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~