Apache Traffic Server安装配置指南
2015-12-16 14:55
751 查看
原文地址:https://www.oldyang.net/archives/168
Apache Traffic Server(ATS或TS)是一个高性能的、模块化的 HTTP 代理和缓存服务器。Traffic Server 最初是 Inktomi 公司的商业产品,该公司在 2003 年被 Yahoo 收购,之后 Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8 月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4 月成为了 ASF 的顶级项目(Top-Level Project)。 Apache Traffic
Server 现在是一个开源项目,开发语言为C++。
操作系统:CentOS 5.8 X86_64
应用:Apache Traffic Server 4.1.2
安装相关的依赖包
进行安装,建议安装在普通用户下
所有的配置文件都在etc/trafficserver目录下。
该文件是ATS的核心主配置文件
修改启动ATS用户
将默认用端口更改为80,用于反向代理
关闭VIA请求到原服务器头部信息
配置缓存服务器响应头部
启用所有的Accept-Encoding头部规范化:
关闭缓存动态内容
修改内存缓存大小,建议使用1/2或1/3物理内存
修改缓存单个文件最大尺寸
修改默认缓存算法
修改当不配置主机时,自动跳转地址
启于HTTP WEB UI,在文件底部添加以下两行
该文件是用于配置ATS的缓存时效等。为各类型的文件添加缓存过期时间
该文件是用于文件缓存的设置。修改缓存文件存储,当系统内核高于2.6.3时可以使用裸设备
该文件主要是配置主机及回源地址
还可以配置区别跳转
也可以配置防盗链,格式为:用户请求地址,回源地址,返回用户地址,允许的domain
启用HTTP WEB UI
ATS分为三个主要进程
traffic_server:进程负责接受连接,处理协议请求,然后从缓存或源服务器获取对象并返回
traffic_manager进程是ATS的命令和控制设施,负责启动、监控和配置traffic_server进程,它也负责代理的端口配置、统计信息的接口、集群管理和虚拟IP的故障转移。如果traffic_manager检测到traffic_server进程失效,它立即重启traffic_server进程并且维护一个连接队列,保存此时到来的请求,完全重启后这个队列里的连接将按顺序被处理。
traffic_cop进程监视traffic_server和traffic_manager进程,此进程周期性的查询traffic_server和traffic_manager进程的健康状况,如果查询在一定间隔时间内未返回或者返回信息不正确,traffic_cop将重启traffic_manager和traffic_server进程。
需要注意的是,如果配置文件使用了1024以下端口,那么就需要在root下启动traffic server。如果使用suid的方式会使ATS不停的coredump的情况,目前原因未知。
启动、关闭、重启traffic_cop.(需要了解是的操作traffic_cop进程会影响其它两个进程)
启动、关闭traffic_server(以下操作需要先启动traffic_cop)
重启traffic_manager。
重载配置文件
清除全部缓存
清除指定缓存
查看日志
日志分析
Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx、swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信息,也可以将数据发送到nagios报警。
Tsar能够比较方便的增加模块,只需要按照tsar的要求编写数据的采集函数和展现函数,就可以把自定义的模块加入到tsar中。更多信息可以查看它的官方网站:http://tsar.taobao.org/
安装tsar的ats模块,可以非常方便查看、分析ats状态。
修改conf/tsar.conf,添加以下配置
修改module/mod_ts_client.c中,修改以下配置
修改为实际路径
修改完成后,执行安装
修改源码中的trafficserver-4.1.2/mgmt/RecordsConfig.cc
将下列中的ApacheTrafficServer更改为如NemoCacheServer
将下列中的ATS修改为NCS
修改configure中的PACKAGE_VERSION为空。
使用裸设备后可以使用ATS自身的文件子系统,可以获得更好的IO性能,也是官方推荐的方式。下面为例
删除分区,不使用操作系统自带分区
修改相关设备权限并创新相关设备,OWNER和GROUP需要根据实际情况进行修改
添加至ATS的stroge.config的最后
重启ATS后生效
通过开启httprespone的VIA功能来快速确认缓存文件状态。首先修改下面的值为
通过头部中的VIA信息,如下面信息中的VIA字段中的”CHs f ”
中括号中的字符是缓存状态的加密字段,可以在http://trafficserver.apache.org/tools/via进行查询。得到如下信息:
用于做为Traffic_cop的守护程序,在没有启运Traffic_cop请使用该脚本。需要注意的是,该脚本需要在root下使,并将其添加至root用户的crontab中。
该脚本用于简化日常ats操作之用。
介绍
Apache Traffic Server(ATS或TS)是一个高性能的、模块化的 HTTP 代理和缓存服务器。Traffic Server 最初是 Inktomi 公司的商业产品,该公司在 2003 年被 Yahoo 收购,之后 Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8 月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4 月成为了 ASF 的顶级项目(Top-Level Project)。 Apache TrafficServer 现在是一个开源项目,开发语言为C++。
系统环境
操作系统:CentOS 5.8 X86_64应用:Apache Traffic Server 4.1.2
安装步骤
安装相关的依赖包yum install pkgconfig libtool gcc make openssl tcl expat pcre pcre-devel libcap flex hwloc lua curses curl tcl-devel
进行安装,建议安装在普通用户下
./configure --prefix=$HOME/local/trafficserver-4.1.2 make -j 24 make install cd $HOME//local ln -s trafficserver-4.1.2 trafficserver sed -i '/^PATH/s/$/:$HOME\/local\/trafficserver\/bin/g' ~/.bash_profile source ~/.bash_profile
修改配置
所有的配置文件都在etc/trafficserver目录下。
record.conf
该文件是ATS的核心主配置文件修改启动ATS用户
CONFIG proxy.config.admin.user_id STRING webserver
将默认用端口更改为80,用于反向代理
CONFIG proxy.config.http.server_ports STRING 80
关闭VIA请求到原服务器头部信息
CONFIG proxy.config.http.insert_request_via_str INT 0
配置缓存服务器响应头部
CONFIG proxy.config.http.insert_response_via_str INT 2
启用所有的Accept-Encoding头部规范化:
CONFIG proxy.config.http.normalize_ae_gzip INT 1
关闭缓存动态内容
CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1
修改内存缓存大小,建议使用1/2或1/3物理内存
CONFIG proxy.config.cache.ram_cache.size INT 25297631232
修改缓存单个文件最大尺寸
CONFIG proxy.config.cache.ram_cache_cutoff INT 119430400
修改默认缓存算法
CONFIG proxy.config.cache.ram_cache.algorithm INT 1
修改当不配置主机时,自动跳转地址
proxy.config.header.parse.no_host_url_redirect STRING http://www.wapka.com
启于HTTP WEB UI,在文件底部添加以下两行
CONFIG proxy.config.http_ui_enabled INT 3 CONFIG proxy.config.http.enable_http_info INT 1
cache.conf
该文件是用于配置ATS的缓存时效等。为各类型的文件添加缓存过期时间dest_domain=wapka.com suffix=gif revalidate=6h dest_domain=wapka.com suffix=jpg revalidate=6h dest_domain=wapka.com suffix=jpeg revalidate=6h dest_domain=wapka.com suffix=png revalidate=6h dest_domain=wapka.com suffix=bmp revalidate=6h dest_domain=wapka.com suffix=swf revalidate=6h dest_domain=wapka.com suffix=ico revalidate=6h dest_domain=wapka.com suffix=js revalidate=6h dest_domain=wapka.com suffix=css revalidate=6h dest_domain=wapka.com revalidate=12h
stroage.conf
该文件是用于文件缓存的设置。修改缓存文件存储,当系统内核高于2.6.3时可以使用裸设备/home5/data 250G
remap.conf
该文件主要是配置主机及回源地址map http://s1.wapka.com/ http://s.wapka.in/ reverse_map http://s.wapka.in http://s1.wapka.com
还可以配置区别跳转
regex_redirect http://[0-9].wapka.in http://www.wapka.com
也可以配置防盗链,格式为:用户请求地址,回源地址,返回用户地址,允许的domain
map_with_referer down0.game.uc.cn/ugameun/(.*)?filename=(.*) http://down0.game.uc.cn/ugameun/$1 http://down0.game.uc.cn/ugameun/$2 *\.haha.cn
启用HTTP WEB UI
map http://localhost/cache-internal/ http://{cache-internal} map http://localhost/cache/ http://{cache} @action=allow @src_ip=127.0.0.1 map http://localhost/stat/ http://{stat} @action=allow @src_ip=127.0.0.1 map http://localhost/test/ http://{test} @action=allow @src_ip=127.0.0.1 map http://localhost/hostdb/ http://{hostdb} @action=allow @src_ip=127.0.0.1 map http://localhost/net/ http://{net} @action=allow @src_ip=127.0.0.1 map http://localhost/http/ http://{http} @action=allow @src_ip=127.0.0.1
进程介绍
ATS分为三个主要进程traffic_server:进程负责接受连接,处理协议请求,然后从缓存或源服务器获取对象并返回
traffic_manager进程是ATS的命令和控制设施,负责启动、监控和配置traffic_server进程,它也负责代理的端口配置、统计信息的接口、集群管理和虚拟IP的故障转移。如果traffic_manager检测到traffic_server进程失效,它立即重启traffic_server进程并且维护一个连接队列,保存此时到来的请求,完全重启后这个队列里的连接将按顺序被处理。
traffic_cop进程监视traffic_server和traffic_manager进程,此进程周期性的查询traffic_server和traffic_manager进程的健康状况,如果查询在一定间隔时间内未返回或者返回信息不正确,traffic_cop将重启traffic_manager和traffic_server进程。
需要注意的是,如果配置文件使用了1024以下端口,那么就需要在root下启动traffic server。如果使用suid的方式会使ATS不停的coredump的情况,目前原因未知。
日常操作
启动、关闭、重启traffic_cop.(需要了解是的操作traffic_cop进程会影响其它两个进程)bin/trafficserver start bin/trafficserver stop bin/trafficserver restart
启动、关闭traffic_server(以下操作需要先启动traffic_cop)
bin/traffic_line -U bin/traffic_line -S
重启traffic_manager。
bin/traffic_line -L
重载配置文件
bin/traffic_line -x
清除全部缓存
bin/traffic_server -Cclear
清除指定缓存
URL=$2 HOST=`echo ${URL} | awk -F"/" '{print $3}'` URI=`echo ${URL} | cut -d"/" -f4-` curl -X PURGE -I -H Host:${HOST} http://127.0.0.1/$URI
查看日志
bin/traffic_logcat var/log/trafficserver/squid.blog
日志分析
bin/traffic_logstats var/log/trafficserver/squid
奇技淫巧
使用tsar监控ATS
Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx、swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信息,也可以将数据发送到nagios报警。Tsar能够比较方便的增加模块,只需要按照tsar的要求编写数据的采集函数和展现函数,就可以把自定义的模块加入到tsar中。更多信息可以查看它的官方网站:http://tsar.taobao.org/
安装tsar的ats模块,可以非常方便查看、分析ats状态。
wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate unzip tsar.zip cd tsar
修改conf/tsar.conf,添加以下配置
#trafficserver# mod_ts_cache on mod_ts_client on mod_ts_codes on mod_ts_conn on mod_ts_err on mod_ts_os on mod_ts_storage on
修改module/mod_ts_client.c中,修改以下配置
const static char *sock_path = "/var/run/trafficserver/mgmtapisocket";
修改为实际路径
const static char *sock_path = "/home/webserver/local/trafficserver/var/trafficserver/mgmtapisocket";
修改完成后,执行安装
make make install
隐藏VIA中的版本信息
修改源码中的trafficserver-4.1.2/mgmt/RecordsConfig.cc将下列中的ApacheTrafficServer更改为如NemoCacheServer
{RECT_CONFIG, "proxy.config.http.request_via_str", RECD_STRING, "ApacheTrafficServer/" {RECT_CONFIG, "proxy.config.http.response_via_str", RECD_STRING, "ApacheTrafficServer/"
将下列中的ATS修改为NCS
RECT_CONFIG, "proxy.config.http.response_server_str", RECD_STRING, "ATS/"
修改configure中的PACKAGE_VERSION为空。
使用裸设备
使用裸设备后可以使用ATS自身的文件子系统,可以获得更好的IO性能,也是官方推荐的方式。下面为例删除分区,不使用操作系统自带分区
`fdisk -l /dev/sde`
修改相关设备权限并创新相关设备,OWNER和GROUP需要根据实际情况进行修改
chmod a+rw /dev/sde vim /etc/udev/rules.d/99-ats.rules KERNEL=="sde",MODE="0660",OWNER="webserver",GROUP="webserver"
添加至ATS的stroge.config的最后
vim etc/trafficserver/storage.config /dev/sde
重启ATS后生效
快速确认文件缓存状态
通过开启httprespone的VIA功能来快速确认缓存文件状态。首先修改下面的值为CONFIG proxy.config.http.insert_response_via_str INT 2
通过头部中的VIA信息,如下面信息中的VIA字段中的”CHs f ”
HTTP/1.1 200 OK Date: Tue, 18 Mar 2014 06:03:24 GMT Server: NCS Last-Modified: Wed, 12 Mar 2014 10:11:15 GMT ETag: "524002f-1802-4f4660e8ff6c0" Accept-Ranges: bytes Content-Length: 6146 Content-Type: image/jpeg Age: 10 Connection: keep-alive Via: http/1.1 nemo-search1 (NemoCacheServer [cHs f ])
中括号中的字符是缓存状态的加密字段,可以在http://trafficserver.apache.org/tools/via进行查询。得到如下信息:
Proxy request results: Result of Traffic Server cache lookup for URL:in cache, fresh (a cache "HIT") Response information received from origin server:no server connection needed Result of document write-to-cache:no cache write performed
定制脚本
monitor
用于做为Traffic_cop的守护程序,在没有启运Traffic_cop请使用该脚本。需要注意的是,该脚本需要在root下使,并将其添加至root用户的crontab中。
atsctl
该脚本用于简化日常ats操作之用。Usage: atsctl[ help | start | stop | restart | reload | stat | purge | purge all ] - help: print this help message - start: Start traffic server - stop: Stop traffic server - restart Restart traffic server - reload Reread Config Files - purge Purge the specified URL cache. Example: atsctl purge http://URL
- purge all Purge all cache
相关文章推荐
- Apache2.4在 win64 配置
- 中间件-apache卸载步骤
- Ubuntu/Linux apache启动、重启、停止操作指令
- 中间件apache安装部署步骤
- vwampserver2.5-apache2.4.9允许外部访问的配置
- django在ubuntu下apache中部署
- apache 提示You don't have permission to access /test.php on this server.解决
- 在xampp中的Apache配置虚拟主机
- Apache 安全设置(持续记录)
- Apache ab 压力测试出现 Failed requests
- 关于开源项目中 Apache 开源协议的一些介绍
- Apache2.2.17源码编译安装以及配置虚拟主机
- Failure to transfer org.apache.maven.plugins
- 老李分享:apache日志分析及系统cpu,内存,负载情况监控 2
- 老李分享:apache日志分析及系统cpu,内存,负载情况监控
- Centos7 系统下怎么更改apache默认网站目录
- Linux下Apache+Mysql+PHP的环境搭建
- apache 403错
- apache2部署多个django项目
- 利用.htaccess, 启用Apache的简单密码验证