博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Ats 搭建/编译

Posted on 2017-06-12 17:58  bw_0927  阅读(633)  评论(0)    收藏  举报

https://blog.zymlinux.net/index.php/archives/123

http://m.blog.chinaunix.net/uid-30199261-id-5132201.html

https://blog.zymlinux.net/index.php/archives/179

 

 

=============================== 

此环境为个人测试所用,仅作参考。

 

 

假设为虚拟机搭建,A为物理机本机,B、C是虚拟机上的两台机(Centos6),当然B、C可以整合到一台机上(要考虑ats监听端口不跟nginx监听端口冲突)。

基础配置:

A:192.168.56.1,在浏览器上设置代理:192.168.56.2:80

B:192.168.56.2 ,设置代理端口为80,ats搭建可以用写好的脚本跑(Centos6环境),参考https://blog.zymlinux.net/index.php/archives/123

C:192.168.56.3,搭建nginx,监听端口为80,已写脚本,可以直接用脚本来跑。

 

【ATS配置】

B:配置remap.config文件

map http://test.ats.com/ http://192.168.56.3/
reverse_map http://192.168.56.3/ http://test.ats.com/     #把源响应的ip转成域名再响应给代理用户

配置好ATS重启一下ats进程即可(或者./traffic_line -x)。

这时在A上通过代理访问http://test.ats.com/这个域名就会被ATS map到C的nginx默认的80端口上了。

一个简单的测试环境就搭建好了,这个环境可以测试正向代理和反向代理。已经可以测试ats不少东东了。

当然你还可以通过配合DNS服务器或者修改本地host等方式模拟更真实的反向代理环境。

 

=====================

对于刚接触ats的人,不知道怎么入手,我刚开始学的时候也是这样,我想总结下搭建简单的ats环境的步骤,目的就是使用户请求可以通过ats进行缓存。

client----------->ats------------>源(nginx或apache)
机器a            机器b           机器c

1. 在b上安装ats安装包,此处省略具体的安装过程
2. 安装完成后需要修改下配置:
==record.config中:
CONFIG proxy.config.reverse_proxy.enabled INT 1        开启反向代理
CONFIG proxy.config.url_remap.remap_required  INT 1 开启remap功能
CONFIG proxy.config.http.cache.http INT 1                    开启http缓存功能
CONFIG proxy.config.log.custom_logs_enabled INT 1     设置为1可以看到访问日志access.log
【如果没有上边这个log的配置项可以将下面两项都配置成1,则可看到访问日志squid.log
CONFIG proxy.config.log.squid_log_enabled INT 1
CONFIG proxy.config.log.squid_log_is_ascii INT 1】
记住 CONFIG proxy.config.http.server_ports STRING 80    记住这个端口号,就是访问ats的端口

==remap.config中:
map http://www.mail.163.com http://www.sina.com.cn 
【map www.baidu.com  www.mail.163.com  return 403,原因我还没找出来】


3.验证ats是否安装成功并且通了
此时启动ats,看ats的三个进程是否都启动了,如果没有都启动,查看traffic.out或者traffic.diag查看下原因,是端口被占用了还是别的原因。

有时候起不来是record.config中这个设置的原因:CONFIG proxy.config.admin.user_id STRING nobody 【需要把nobody改成#-1】,为什么这么改我还不是很清楚,需要大家一起探讨,应该是个权限问题,修改后log目录底下才出现diags.log和manager.log,详细解释间下面的备注。

这时候访问wget -e http_proxy=ats机器的ip:port  http://www.mail.163.com -S   ,如果返回的是新浪页面的内容,则证明你的ats通了,ats基本的配置就完成了。

 

==============

我的实验环境:

  • 客户端,修改host

10.110.26.84 www.mytest.com

  • ats工作在8080端口
  • 源端nginx工作在8000端口
  • remap.config 添加

map http://www.mytest.com:8080/ http://138.128.213.218:8000/pic/

  • 客户端浏览器发起访问: http://www.mytest.com:8080/trafficserver.png

 

流程:www.mytest.com:8080会被解析到10.110.26.84:8080,即ats的工作端口,然后匹配map规则,改写http://www.mytest.com:8080/trafficserver.png 为 http://138.128.213.218:8000/pic/trafficserver.png

 

 

===========================

useradd trafficserver -s /sbin/nologin

yum install make gcc gcc-c++ glibc-devel db4-devel openssl-devel tcl-devel expat-devel pcre-devel 
autoreconfig -if
./configure -with-user=trafficserver -with-group=trafficserver

./configure --prefix=/home/services/ats_6.1.1-rc0  CXXFLAGS=-Os CFLAGS=-Os  CURSES_LIB=-l/usr/lib64/libncursesw.so
./configure --prefix=/home/services/ats_7.1.0-rc1  CXXFLAGS=-Os CFLAGS=-Os
make && make install
traffic_cop: error while loading shared libraries: libtsmgmt.so.3: cannot open shared object file: No such file or directory
解决办法:在/etc/ld.so.conf文件中添加/home/services/ats_6.1.1-rc0/lib这一行,保存之后,/sbin/ldconfig –v更新一下配置即可

  

./traffic_cop&

[root@45.78.53.131 bin]$ ps -ef | grep traff
root      4997 20120  0 05:14 pts/1    00:00:00 ./traffic_cop
nobody    4998  4997  0 05:14 pts/1    00:00:00 /home/services/ats/ats_6.1.1-rc0/bin/traffic_manager --bind_stdout /home/services/ats/ats_6.1.1-rc0/var/log/trafficserver/traffic.out --bind_stderr /home/services/ats/ats_6.1.1-rc0/var/log/trafficserver/traffic.out
nobody    5004  4998  1 05:14 pts/1    00:00:02 /home/services/ats/ats_6.1.1-rc0/bin/traffic_server -M --bind_stdout /home/services/ats/ats_6.1.1-rc0/var/log/trafficserver/traffic.out --bind_stderr /home/services/ats/ats_6.1.1-rc0/var/log/trafficserver/traffic.out --httpport 8080:fd=8

configure没指定用户和组时,默认nobody
--bind_stdout  --bind_stderr的路径默认也是congfigure时指定的路径

该路径今后可通过
./traffic_line -s proxy.config.log.logfile_dir -v /new/path/ 来更改