yayu_myself 发表于 2011-11-18 11:16

回复 130# aaaaaa


    嗯,O(∩_∩)O谢谢!
   prefetch的配置文件在源码目录找到了,但是它没有被安装到etc中。。

yunfeichen119 发表于 2011-11-18 11:23

prefetch配置中的prefetch_children是做什么的

aaaaaa 发表于 2011-11-18 11:55

只有这个参数定义的ip地址发起的请求,才会启用prefetch

yunfeichen119 发表于 2011-11-18 12:49

回复 133# aaaaaa


    我表述的不是很明白。配置文件说指明Traffic Server child node,这个child node是客户端,集群中其他的traffic server,还是源服务器?
如果是集群中traffic server,这里的预取和通常的预取好像不同呀?

aaaaaa 发表于 2011-11-18 13:50

这个child node是客户端,因为这个功能是有级联背景的,因此你也可以看作子cache服务器。

yunfeichen119 发表于 2011-11-19 10:51

本帖最后由 yunfeichen119 于 2011-11-19 11:01 编辑

prefetch配置中proxy.config.prefetch.child_port指定的是客户端端口吗?用户使用浏览器查看网页时,还要做特殊配置吗?如果用户没有启动这个端口,就不可以进行预取吗?还是proxy.config.prefetch.child_port是其他含义?
难道prefetch功能只能在集群中与其他traffic server配合使用?
如果只使用一台trafficserver,采用这种布局:客户端----traffic server-------源服务器,可以使用预取功能吗?
非常感谢!

aaaaaa 发表于 2011-11-19 12:57

prefetch配置中proxy.config.prefetch.child_port指定的是客户端端口吗?用户使用浏览器查看网页时,还要做特殊配置吗?如果用户没有启动这个端口,就不可以进行预取吗?还是proxy.config.prefetch.child_port是其他含义?
child_port是TS用来发起http请求的端口。TS实现update和prefetch都是自己内部启用一个仿真客户端,用127.0.0.1发起一个客户端请求,来推动状态机进行更新和抓取操作。所以有所谓的端口就是这个仿真客户端的发起端口。这个端口默认是:39679

难道prefetch功能只能在集群中与其他traffic server配合使用?
如果只使用一台trafficserver,采用这种布局:客户端----traffic server-------源服务器,可以使用预取功能吗?

可以用,同上描述,因为TS会仿真客户端,所以只要有个触发机制就够了。prefetch是用的真正客户端来触发。update是用的时间来触发。

非常感谢!

yunfeichen119 发表于 2011-11-19 15:51

本帖最后由 yunfeichen119 于 2011-11-21 10:29 编辑

回复 137# aaaaaa


我使用火狐浏览器,设置另一台机器的traffic server为代理,访问门户 网站,测试prefetch。我用wireshark在本机抓包,抓到了traffic server发往本机39679端口TCP SYN报文,因为本机没有启动39679端口,三次握手失败。这是怎么回事?

是不是proxy.config.prefetch.push_cached_objects造成的影响?

如果使用级联方式,traffic server应该启动39679进行监听接收报文,使用netstat命令并没有查到39679端口呀。

client-----TS1------------TS2-----------------WEB SERVER
client向TS1发起请求,TS1解析应答中的html文档后进行预取,TS1向TS2发起请求,TS2从WEB SERVER处得到应答后,传给TS1,TS1将应答缓存完成prefetch,在client请求时将预取的资源返回给client。

client-------TS--------WEB SERVER
TS在预取后应将资源缓存,不应该直接发送给client呀??

是我配置有问题吗?配置应该只是使能了prefetch,prefetch_children指明为客户端。
3.0.1版本的prefetch功能可以使用吗?
很是困惑呀

prefetch模块发起了两次连接,第一次向127.0.0.1:8080建立连接,应该是你说的。第二次向客户端:childport发起连接,应该是推送数据。推送的数据应该由stuffer模块接收吧?如果是级联,推送给child node,如果不是级联,应该推送给自己的stuffer模块。不知道我的理解对不对??

aaaaaa 发表于 2011-11-21 18:53

client-------TS--------WEB SERVER
是工作的,所有从prefetch发起的请求,都会缓存(遵守缓存规则)

我在完成prefetch配置文件的任务时,用的trunk,确实可以用。其他3.0.x不记得了。

prefetch目前有个极大的限制,不能解析非html/txt的文件,即gzip的文件无法处理,你测试关闭gzip看看。

gzip的核心处理,community一直有想法把它建立在应用层,但是由于核心开发人员一直忙其他任务,一直没有人来做。悲剧。

你三次握手失败,搞不清楚状况啊


client-----TS1------------TS2-----------------WEB SERVER
client向TS1发起请求,TS1解析应答中的html文档后进行预取,TS1向TS2发起请求,TS2从WEB SERVER处得到应答后,传给TS1,TS1将应答缓存完成prefetch,在client请求时将预取的资源返回给client。
这个prefetch应该起在TS1上,事实上是TS1从TS1的localhost:39679->localhost(或其外网IP):8080(或其他配置端口)来发起一个http请求。请照这个方向来查问题。


最近忙于一些复杂问题,等我有空再总结些文档吧。

yunfeichen119 发表于 2011-11-22 09:46

本帖最后由 yunfeichen119 于 2011-11-22 14:46 编辑

client-------TS--------WEB SERVER
是工作的,所有从prefetch发起的请求,都会缓存(遵守缓存规则)

我 ...
aaaaaa 发表于 2011-11-21 18:53 http://bbs.chinaunix.net/images/common/back.gif


谢谢你的答复。
页: 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23
查看完整版本: Apache Traffic Server 3.2.0 正式版,附srpm包