trafficserver 服务搭建

时间:2025-02-17 13:14:43

 

traffic server简介:

Apache Traffic Server是一个高性能的、模块化的HTTP代理和缓存服务器,与 Nginx 和 Squid 类似,提供高性能可伸缩的使用http/https通信的正向和反向代理解决方案,同时支持多种代理方案同时配置。

 

特点:

缓存:改进响应时间的同时降低了服务器负载与对带宽的需求,这是通过缓存并且重用经常请求的网页、图片和Web Service调用实现的。

代理:很容易添加持续连接、过滤器或异步内容请求,还可以通过添加代理层实现负载平衡

速度:在现代的SMP硬件上具有很好的可伸缩性,每秒钟可以处理数以万计的请求。

可扩展性:API考虑到了自定义插件,可以修改头与内容,还可以实现新的协议处理器。

可靠性:能够完美处理TB级别的数据,包括正向与反向代理

 

安装:

虚拟机安装:

网络虚拟机是桥接模式

 

1.安装依赖包

yum install gcc gcc-c++ pkgconfig pcre-devel tcl-devel expat-devel openssl-devel -y

yum install perl-ExtUtils-MakeMaker -y

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

sudo yum install libunwind libunwind-devel -y

yum install autoconf automake libtool -y

sudo yum install git -y

 

2.下载并解压

cd /usr/local/src

官网下载trafficserver_5.3..bz2

/到官网下5.3.0版本  注意:5.3.0+ 可能对Linux版本有要求

tar -jxvf trafficserver_5.3..bz2

cd trafficserver-5.3.0

3.编译安装:

mkdir -p /opt/ats

新建用户和组

useradd -s /sbin/nologin tserver

编译安装:

./configure --prefix=/opt/ats --with-user=tserver --with-group=tserver --enable-debug --enable-experimental-plugins --enable-example-plugins --enable-hwloc

make && make install

 

4.修改配置文件:直接完整拷贝

CONFIG .proxy_name STRING hk_ats111

CONFIG .response_server_str STRING ats1

CONFIG .response_via_str STRING ats2

CONFIG .request_via_str STRING ats3

CONFIG .min_average_object_size INT 8000

CONFIG .ram_cache.algorithm INT 1

#hot 10MRAM

#CONFIG .ram_cache.size INT 10485760

CONFIG .ram_cache.size INT 1048576

CONFIG .ram_cache_cutoff INT 4194304

CONFIG .show_location INT 1

CONFIG  INT 2

CONFIG .ttl_mode INT 1

CONFIG .cache_responses_to_cookies INT 1

CONFIG .ignore_client_no_cache INT 1

CONFIG .required_headers INT 0

CONFIG .insert_response_via_str INT 2

CONFIG .server_ports STRING 8080

#复用server session

#CONFIG .share_server_sessions INT 2

#定制log

CONFIG .custom_logs_enabled INT 1

CONFIG .max_space_mb_for_logs INT 25000

CONFIG .rolling_enabled INT 1

CONFIG .rolling_size_mb INT 10

CONFIG .squid_log_enabled INT 0

CONFIG .xml_config_file STRING logs_xml.config

CONFIG .max_line_size INT 35000

CONFIG .log_buffer_size INT 262144

#同时能处理多少个链接

CONFIG .connections_throttle INT 30000

#反向代理必须跟remap配置文件配合使用才能缓存 一般正向代理不走remap配置文件

#配置pristine为0 和remap_required 即关闭纯正向代理

CONFIG .reverse_proxy.enabled INT 0

CONFIG  INT 0

CONFIG .task_threads INT 2

#1为只服务remap配置文件中的请求 即反向代理

#0 当开启正向代理 + 非只服务remap中的请求 即正向+反向代理

CONFIG .url_remap.remap_required INT 0

CONFIG .enable_read_while_writer INT 2

CONFIG .insert_request_via_str INT 1

CONFIG .anonymize_insert_client_ip INT 1

#请求源站时 把client_ip信息插入到xff首部中

CONFIG .insert_squid_x_forwarded_for INT 1

CONFIG .body_factory.template_sets_dir STRING etc/trafficserver/body_factory

#########################################################################

#pristine默认为 0

CONFIG .url_remap.pristine_host_hdr INT 1

#CONFIG  STRING 

#debug开关 1是开启

CONFIG  INT 1

CONFIG  STRING dns_pas

CONFIG .url_remap.filename STRING 

CONFIG  STRING 

CONFIG .connect_attempts_timeout INT 10

CONFIG .ip_resolve STRING ipv4

CONFIG  INT 0

-----------------------------------------------------------------------------------------------------------------

 

5.修改logs_xml.conf文件

[root@bogon trafficserver]# cat logs_xml.config

<LogFormat>

  <Name = "intcache_log"/>

  <Format = "%<cqtq> %<ttms> %<pssc> [%<cqtt>] %<{X-Forwarded-For}cqh> \"%<cqtx>\" %<psql> \"%<pqsi>\" %<crc>:%<phr> %<{Referer}cqh> \"%<{User-Agent}cqh>\" %<psct>"/>

</LogFormat>



<LogObject>

  <Format = "intcache_log"/>

  <Filename = "access"/>

  <RollingEnabled = "3"/>

  <RollingIntervalSec = "86400"/>

  <RollingOffsetHr = "0"/>

  <RollingSizeMb = "2000"/>

</LogObject>

6.加好后trafficserver restart

/opt/ats/bin/trafficserver restart

看看能不能起来

然后看看 日志

 

7.没有日志  ##报错

修改

[root@bogon ~]# cat ~/.bashrc

# .bashrc

# User specific aliases and functions

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

# Source global definitions

if [ -f /etc/bashrc ]; then

    . /etc/bashrc

fi

alias ats_log='cd /opt/ats/var/log/trafficserver;pwd'  ##修改

alias ats_db='cd /opt/ats/var/trafficserver;pwd'

alias ats_bin='cd /opt/ats/bin;pwd'

alias ats_conf='cd /opt/ats/etc/trafficserver;pwd'  ##修改

alias ats_lib='cd /opt/ats/libexec/trafficserver;pwd'  ##修改

alias ats_stat='ps auxf | grep traffic | grep -v grep'

alias ats_ports='netstat -nltp | grep traffic | grep -v grep'

8.测试:

手机联无线WiFi,修改WiFi代理网络为trafficserver的外网IP端口为8080,要是在本地测试没有外网IP就用内网可以连接的IP

查看日志

/opt/ats/var/log/trafficserver/

注:家庭网络没有80端口,因为不能用作服务网络

 

9、统计域名

awk '$7~/(jpg|jepg|png|gif|js)/{ split($7, arr, "/"); print arr[3];}' | sort | uniq

awk '$7~/(jpg|jepg|png|gif|js)/{ split($7, arr, "/"); print arr[3];}' | sort | uniq > pic_domain.txt