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/ 来更改