博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache Traffic Server服务搭建
阅读量:4489 次
发布时间:2019-06-08

本文共 5342 字,大约阅读时间需要 17 分钟。

一、简介

  Apache Traffic Server(ATS或TS)是一个高性能的、模块化的HTTP代理和 ,与 Nginx 和 Squid 类似。它通过将频繁访问的信息缓存在网络的边缘来改善网络的效率和性能,使得访问内容在地里上更接近终端用户,在更快分发的同事也减少带宽的占用。 Apache TrafficServer 现在是一个 ,开发语言为C++。

二、功能

  Apache Traffic Server是个快速、可伸缩、可扩展、兼容于HTTP/1.1缓存代理的服务器,它具有如下特色:
:改进响应时间的同时降低了服务器负载与对带宽的需求,这是通过缓存并且重用经常请求的网页、图片和Web Service调用实现的。
代理:很容易添加持续连接、过滤器或异步内容请求,还可以通过添加代理层实现 。
速度:在现代的SMP硬件上具有很好的可伸缩性,每秒钟可以处理数以万计的请求。
可扩展性:API考虑到了自定义插件,可以修改头与内容,还可以实现新的协议处理器。
可靠性:能够完美处理TB级别的数据,包括正向与 。
 
三、ATS部署选项
  • 作为一个反向代理
  • 作为一个web代理缓存
  • 部署在多级缓存
 ATS作为反向代理
  作为反向代理,ATS需要配置为用户直接连接的源服务器(典型的用法是将源服务器的主机名解析到ATS),反向代理的功能也被叫做服务器加速。
 ATS作为web代理缓存
  作为web代理缓存,ATS接收用户直接发往源站的web内容请求。如果ATS包含请求的内容,它将直接提供服务。如果请求的内容不再缓存里,ATS将作为一个代理;为用户从源站服务器获取请求的内容,并在本地保存一份拷贝以服务于将来相同的请求。
ATS作为多级缓存
  ATS可以灵活地参与多级缓存,当internet请求不能在一个缓存中得到满足的时候,将被路由到其他区域的缓存,从而利用附近缓存的内容。在一个多级代理中,ATS可以作为其他ATS系统或者其他相似的缓存产品的父节点或者子节点。
 
四、ATS安装
#官网https://trafficserver.apache.org/安装环境yum install 'liblz*' -yyum install net-tools -yyum install gcc gcc-c++ glibc-devel -y yum install autoconf automake pkgconfig libtool -y yum install perl-ExtUtils-MakeMaker perl-URI.noarch -y yum install openssl-devel tcl-devel expat-devel -y yum install pcre pcre-devel zlib-devel xz-devel -y yum install libcap libcap-devel flex hwloc hwloc-devel -y yum install lua-devel curl curl-devel sqlite-devel bzip2 -y 1.安装pcre[root@web_01 pcre-8.36]# wget http://ftp.exim.llorien.org/pcre/pcre-8.36.tar.gz [root@web_01 pcre-8.36]# tar xf pcre-8.36.tar.gz   [root@web_01 pcre-8.36]# cd pcre-8.36 [root@web_01 pcre-8.36]# ./configure --prefix=/usr/local/trafficserver/pcre [root@web_01 pcre-8.36]# make && make instal2.安装trafficserver[root@web_01 ~]# cd /usr/local/src/[root@web_01 src]# wget https://mirrors.aliyun.com/apache/trafficserver/trafficserver-5.3.2.tar.bz2[root@web_01 pcre-8.36]# tar xf trafficserver-5.3.2.tar.bz2 [root@web_01 pcre-8.36]# cd trafficserver-5.3.2  [root@web_01 trafficserver-5.3.2]# ./configure --prefix=/usr/local/trafficserver --with-pcre=/usr/local/trafficserver/pcre --enable-example-plugins --enable-experimental-plugins[root@web_01 trafficserver-5.3.2]# make  && make install 注:--enable-example-plugins --enable-experimental-plugins 这两条指令是为了安装ATS官方集成的插件[root@web_01 trafficserver-5.3.2]# cd /usr/local/trafficserver/bin/[root@web_01 bin]# ./trafficserver startStarting Apache Traffic Server:                            [  Ok

 五、Traffic Server进程管理

[root@localhost ~]# ps aux|grep trafficroot      7469  0.0  0.0 129628  7248 ?        Ssl  04:57   0:02 /usr/local/tcacheserver/bin/traffic_cop176       7472  0.0  0.0 501692 19660 ?        Sl   04:57   0:30 /usr/local/tcacheserver/bin/traffic_manager176       7482 19.8 20.8 15253324 10279168 ?   Sl   04:57 118:31 /usr/local/tcacheserver/bin/traffic_server

 我们可以看到ATS服务启动了三个进程(traffic_cop、traffic_manager、traffic_server)来服务ats请求,管理,控制、监控系统的健康情况,如下图1所述:

 

  • traffic_server 进程是ATS的事务处理引擎。负责接收和处理协议请求以及从本地缓存或源服务器提供资源。
  • traffic_manager进程是用来命令和控制ATS的工具,负责启动、监控以及重新配置端口、统计接口、集群管理以及VIP故障转移。

    如果traffic_manager进程检测到traffic_server进程失败,它不仅会立即重启该进程,而且会为所有转入的请求维护一个连接队列。在traffic_server重新启动前的几秒内传入的所有连接将被保存在一个队列,并以FIFO的方式处理,这个连接队列接收任何server故障重启时的连接。

  • traffic_top进程监控traffic_server和traffic_manager进程的健康状况。

   traffic_top进程通过抓取合成web页面的心跳请求方式周期性地(每分钟若干次)查询traffic_server和traffic_manager进程。如果失败事件发生(如果在超过时间间隔内没有收到请求或者收到错误的请求)traffic_top重启traffic_server和traffic_manager。

 简单配置
#修改records.config文件#25行CONFIG proxy.config.http.server_ports STRING 80#29行CONFIG proxy.config.http.insert_response_via_str INT 2#添加CONFIG proxy.config.log.custom_logs_enabled INT 1#添加CONFIG proxy.config.log.xml_config_file STRING logs_xml.config#添加CONFIG proxy.config.diags.show_location INT 1#修改remap.config文件添加如下:regex_map http://(.*) http://$1#修改logs_xml.config文件添加如下:
/%
%
\"%
\" %
%
%
%
%
\"%
\" %
\"%<{Referer}cqh>\" \"%
\" \"%<{User-agent}cqh>\" %
%
"/>
#修改storage.config文件var/trafficserver 4G#重启服务[root@controller bin]# pwd/usr/local/trafficserver/bin[root@controller bin]# ./trafficserver restart#测试[root@controller bin]# curl -vx 127.0.0.1:80 -o /dev/null 'http://news.sohu.com/'* About to connect() to proxy 127.0.0.1 port 80 (#0)* Trying 127.0.0.1... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)> GET http://news.sohu.com/ HTTP/1.1> User-Agent: curl/7.29.0> Host: news.sohu.com> Accept: */*> Proxy-Connection: Keep-Alive> < HTTP/1.1 200 OK< Content-Type: text/html;charset=UTF-8< Content-Length: 170289< Server: ATS/5.3.2< Date: Fri, 01 Dec 2017 03:26:44 GMT< Cache-Control: max-age=120< X-From-Sohu: X-SRC-Cached< FSS-Cache: EXPIRED from 9206494.16415464.10543436< Accept-Ranges: bytes< FSS-Proxy: Powered by 3308164.4618894.4645016< Age: 0< Proxy-Connection: keep-alive< Via: http/1.1 controller (ApacheTrafficServer/5.3.2 [cSsSfU])< { [data not shown]100 166k 100 166k 0 0 152k 0 0:00:01 0:00:01 --:--:-- 152k* Connection #0 to host 127.0.0.1 left intact

 查看运行情况:

[root@controller bin]# ./traffic_top

 

 

 

转载于:https://www.cnblogs.com/Dev0ps/p/7891659.html

你可能感兴趣的文章
重学前端学习笔记(四十三)--HTML的可访问性ARIA
查看>>
在CentOS 7上安装MongoDB
查看>>
前端-Excel在线预览
查看>>
多种跨域方案
查看>>
selenium
查看>>
豌豆荚
查看>>
bs4
查看>>
设计模式
查看>>
PowerDesigner连接数据库(oracle)
查看>>
gojs常用API (中文文档)
查看>>
【PHP】【java】执行父类构造函数之间的差异
查看>>
【php】 php在linux系统上运行,执行系统命令
查看>>
C语言的宏macro的使用
查看>>
如何设置树莓派 -Zero 自启动连接WIFI
查看>>
Raspberrypi 安装完MySQL之后登录不了(ERROR 1698 (28000))
查看>>
1 Linux输入子系统
查看>>
2linux输入子系统-按键驱动程序
查看>>
3 linux bus-drv-dev模型 LED驱动实验
查看>>
4 linux lcd驱动框架分析
查看>>
5 linux lcd驱动程序编写
查看>>