首页 > 分享 > ?��?��ATSc?�a�?a??c??e��e?�e�?c?�

?��?��ATSc?�a�?a??c??e��e?�e�?c?�

2013年5月8日     浏览数:669 发表评论 阅读评论

??�?��?��e?�cZ?a??a??centos6.

atsc?�a�?a??c??e��e?�e?�e�?a�YaS�cacheurle?�a????�a��i??a??a�?a?�e�?e�?a�?cs�a?�e?�i?shttp://people.apache.org/~zym/trafficserver/cacheurl.html

????�?e??

????�?atse�?c?�a?Se?�e??i??a?�a�?a��e?�e�s??�?????�?��aS�a?�e?�e??a��

traffic_line -s proxy.config.http.cache.required_headers -v 0

traffic_line -x

a?�a�?a?�e??c?�e?�a��e?�cacheurl

1.a�Zgita?�eZ�a?�cacheurl??�a��

cacheurl??�a��a???��c�?cs�atsa?�??�i??a��e�se?�git clonea?�e??cs�atse�?e??a��??�e?�a??pluginsi?s

git clone https://git-wip-us.apache.org/repos/asf/trafficserver.git

??�a��???c�?c��a?�i?strafficserver/plugins/experimental/cacheurla��
2.a?�c��a?�e??a��e?�

a?�e??a?�a?�i?shttps://blog.zymlinux.net/softs/cacheurl.tar.gz

a��?z?a?Se??cs�a��e?�e????�e��e??i??e�?a��a?�e??e?�a??e?�e?�i?shttp://pan.baidu.com/share/link?shareid=380294&uk=1006710124

c?�e?�a��e?�?�?a??i?s
e��a�?e?�a�???�a��c��a?�i??a??c�?atse�?a?�cs�a�?a��c?�e?�a��e?�i?s

tsxs -c cacheurl.c -o cacheurl.so
tsxs -i -o cacheurl.so

e�?e��a��a?sa��e?�a?�/usr/local/libexec/trafficserver/c��a?�a?�a��

a??a�?e�?c?�cacheurl

i??a?�e??e�?c?�e�?a?�a??e�?e��a��e?�??�a��i?�

1.e�?c?�atsaS�e??cacheurl??�a��i?s

echo "cacheurl.so" >>/usr/local/etc/trafficserver/plugin.config

2.e�?c?�cacheurle��a?�

a�?a?�a?�e??e?�a?�a�?c�??��e??a?�a?�a??a??a��

cat > /usr/local/libexec/trafficserver/cacheurl.config<< "EOF"
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}[^&]*/f4v/.*id=tudou.itemid\=([0-9]*).* http://www.tudou.com/$1
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}[^&]*/flv/.*id=tudou.itemid\=([0-9]*).* http://www.tudou.com/$1
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/youku/.*/(.*-.*-.*-.*-[^?]*)(.*) http://www.youku.com/$1
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/sohu/[0-9]*/[0-9]*/[0-9]*/(.*).mp4?key=.* http://tv.sohu.com/$1.mp4
http://.*\..*\..*\..*/.*\.com/flvdownload/[[:digit:]]{1,3}/[[:digit:]]{1,3}/([^?]*)(.*) http://www.56.com/$1
http://[[:digit:]]{1,3}/mp4files/.*/.*\.com/images/tuiguang/[[:digit:]]{6,6}/(.*\.mp4) http://www.56.com/$1
http://.*\..*\.com/images/tuiguang/([[:digit:]]{6,6})/(.*\.mp4) http://www.56.com/tuiguang/$1/$2
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/mov.bn.netease.com/.*/.*/.*/.*/.*/([^?]*)(.*) http://v.163.com/$1
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/.*-.*-.*/.*/cemov.bn.netease.com/.*/.*/.*/.*/.*/([^?]*)(.*) http://v.163.com/$1
EOF

a?�a�?e�?a??ats???aS?i?strafficserver restart
a��a�?e??e??
1.?�?a?�a?�?z?
????�?????�?i?scZ�a???��c�???�a�?c�??????�logc�Y???a?�i??i??i???��c�???�e?�e�?e??e??e??aSYe??a��—2014-11-06
c??c��a?�a?�e�Ya��a??a�??Y?c?�?��c�Y???cs�?�?a?�i?stailA�/usr/local/var/log/trafficserver/cacheurl.logA�A�a?sc?�a?�e�?c?�cs�e��a?�aS�e??i?s

20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}[^&]*/f4v/.*id=tudou.itemid\=([0-9]*).*' -> 'http://www.tudou.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}[^&]*/flv/.*id=tudou.itemid\=([0-9]*).*' -> 'http://www.tudou.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/youku/.*/(.*-.*-.*-.*-[^?]*)(.*)' -> 'http://www.youku.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/sohu/[0-9]*/[0-9]*/[0-9]*/(.*).mp4?key=.*' -> 'http://tv.sohu.com/$1.mp4'
20130508.16h23m48s Adding pattern/replacement pair: 'http://.*\..*\..*\..*/.*\.com/flvdownload/[[:digit:]]{1,3}/[[:digit:]]{1,3}/([^?]*)(.*)' -> 'http://www.56.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}/mp4files/.*/.*\.com/images/tuiguang/[[:digit:]]{6,6}/(.*\.mp4)' -> 'http://www.56.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://.*\..*\.com/images/tuiguang/([[:digit:]]{6,6})/(.*\.mp4)' -> 'http://www.56.com/tuiguang/$1/$2'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[^.]*\.[^.]*\.[^.]*\.[^/]*/videos2/[^/]*/[^/]*/([^?]*)(.*)' -> 'http://www.iqiyi.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/mov.bn.netease.com/.*/.*/.*/.*/.*/([^?]*)(.*)' -> 'http://v.163.com/$1'
20130508.16h23m48s Adding pattern/replacement pair: 'http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/.*-.*-.*/.*/cemov.bn.netease.com/.*/.*/.*/.*/.*/([^?]*)(.*)' -> 'http://v.163.com/$1'

c��a?Za?�??�e��e?�e��c?�cs�?��a��a�??Y?c?�e?�a???�?a?�cs�?��a��a?sa?�cZ�??�a?�e��e?�urla??e?�a?�a?�i?s

20130508.18h50m55s Rewriting cache URL for http://101.226.245.108/youku/65755D0A4F24483CEA1A71668F/030002070351685B233BEE04CB019FF9EDA1BF-0746-632C-C41D-BCEBFA57CABD.flv to http://www.youku.com/030002070351685B233BEE04CB019FF9EDA1BF-0746-632C-C41D-BCEBFA57CABD.flv

2.firebuga?�?z?

?��a?�firebug??�a��i??e�?c?�a??a�?c?�i??e��c?�a??e��e��e?�?��e?�i???Y?c?�via

PSi?sfirebug?�Za???�?e��e?�???c��i?Y?��??�c�???�a??a�?c�?a��a�?FLASHa�?e��e???Y?c?�i??e?z?��??�c�???�a??a�?c�?a��a�??��??�a�?i??c?�a�?a?�?��?��e�?a?Zc�?a��a��a�??Z�a??a?�a?�i??e��e?�?��a��a?�e?�??�e??a��a��

c��a?�?�?e?�?��a?�e��e?�?��a��viac�????cMsSfWi???�?a??a��a�?c?�a�?a��

111

??�c�??�?e�?a�?c?�a�?a�??�?e��c?�i??viaa��a?�cHs fi??a�?c�?c?�a�?a�?a?�a��

222

 

Viac�?e?�e�?a??c�?cs�i??a��?z????c�???�a��cs�a��e?�e�s??�a��e?�cs�a�?c�?e�?c?�a??a?�a��c��c��a��e?�cs�e?�e�??��e??i?s

traffic_line -s  proxy.config.http.insert_request_via_str -v 1
traffic_line -s  proxy.config.http.insert_response_via_str -v 2
traffic_line -x
e?�a??Viac�?cs�?��aS�a�?c�?a??a��c?�?��c��e?????a?�a?�a��

e�?c?�a�???�a��

  1. 七魔星呼吸
    2013年5月10日10:36 | #1

    沙发。。。哈哈

  2. fangod
    2013年5月12日14:49 | #2

    问下 能缓存文件 或者网页吗 怎么缓存 这个是透明代理吧 需要iptables吗 比方缓存360测速的文件之类的

  3. 纸鸢
    2013年5月12日15:38 | #3

    缓存文件、网页是缓存服务器最基本的功能了,ok的。透明代理,如果不是监听80端口,需要iptables把请求转发到ats监听的端口@fangod

  4. fangod
    2013年5月16日10:48 | #4

    @纸鸢
    怎么查看缓存的东西呢, 能指定吗 比方我想把360测速和QQ测速的东西缓存上 大概怎么设置呢 没接触过 英文不是太好 谢谢

  5. fangod
    2013年5月16日10:52 | #5

    @fangod
    像cf之类的常用游戏下载都可以缓存 可以大大的节省带宽 新手 学习中

  6. 纸鸢
    2013年5月16日14:44 | #6

    目前ats缓存内容查询那块功能比较弱,你可以通过http_ui查询,不过得知道具体的url才行,正则的查询经常因为缓存空间大查询超时。大家都是通过日志分析的~@fangod

  7. 纸鸢
    2013年5月16日14:45 | #7

    这个文件缓存是默认支持的,多看看blog、文档啥的就行了@fangod

  8. fangod
    2013年5月18日14:18 | #8

    一般需要多大的硬盘空间 1.5t可以吗 另外 这东西是消耗内存多些还是消耗cpu多些,正常使用环境8g内存能带200台电脑吗

  9. fangod
    2013年5月21日19:18 | #9

    [root@guo cacheurl]# tsxs -c cacheurl.c -o cacheurl.so
    compiling cacheurl.c -> cacheurl.lo
    cacheurl.c:28:24: 错误:ink_config.h:没有那个文件或目录
    cacheurl.c:38:22: 错误:ink_defs.h:没有那个文件或目录
    cacheurl.c:434: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘ATS_UNUSED’
    cacheurl.c:457: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘ATS_UNUSED’
    Compile failed: gcc -I/usr/local/include -g -pipe -Wall -Werror -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing -fpic -c cacheurl.c -o cacheurl.lo

    tsxs cacheurl.c的时候出现的 百度不到 求问

  10. fangod
    2013年5月21日21:20 | #10

    前面两个文件找到了,后面的错误我查找说是gcc编译c++文件引起的 现在的错误是

    compiling cacheurl.c -> cacheurl.lo
    In file included from cacheurl.c:38:
    /usr/local/include/ink_defs.h:93: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ts’
    cacheurl.c:434: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘ATS_UNUSED’
    cacheurl.c:457: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘ATS_UNUSED’
    Compile failed: gcc -I/usr/local/include -g -pipe -Wall -Werror -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing -fpic -c cacheurl.c -o cacheurl.lo

  11. 纸鸢
    2013年5月21日23:33 | #11

    从这里下载试试:http://pan.baidu.com/share/link?shareid=380294&uk=1006710124
    估计是版本对应的问题。@fangod

  12. fangod
    2013年5月22日10:46 | #12

    可以了 版本问题 你的版本哪里来的啊……我找不到 另外 现在的问题是 我用firefox浏览 设置代理 可以正常试用 好像youku快进后就卡在那里了 而56则没问题 我测试透明代理 用ros把我电脑的数据转到ats的80端口 结果网页可以正常打开 视频不能播放 连广告都没有…….

  13. fangod
    2013年5月22日10:47 | #13

    另外 不用代理后没办法看via了吗 firebug 看不到了就 关掉代理后

  14. fangod
    2013年5月22日10:57 | #14

    刚等了好长时间 可以看视频了…80端口转发数据 巨卡……..基本一看一顿 跟用firefox设置代理完全是两个效果 也不播广告…..

  15. fangod
    2013年5月22日11:07 | #15

    ros转发的情况下 设置firefox代理 正常了 查看via 缓存了 ros转发 看日志也重定位了 但是播放困难

  16. 纸鸢
    2013年5月22日14:19 | #16

    我那个版本是之前自己安装成功后收藏的。其他问题,我想想再回答@fangod

  17. fangod
    2013年5月22日17:10 | #17

    搞定 我把ros又加了一块网卡指定了个ip 直接连接ats 然后转发数据给ats就可以了 看记录有缓存 via不用设置代理也可以看 不过好多没有via信息的 有的有有的没有.继续查看千石翻译的admin文档

    ##############################################################################
    CONFIG proxy.config.cache.permit.pinning INT 0
    # default the ram cache size to AUTO_SIZE (-1) based on cache size
    # (approximately 1 MB of RAM cache per GB of disk cache)
    # alternatively, set to a fixed value such as 20971520 (20MB)
    CONFIG proxy.config.cache.ram_cache.size INT -1
    CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304

    这里设置成-1和这个4194304 是自动调节的意思吗 看到有的说把这里加大 -1改成2048MB之类的 如果修改下面需要修改吗 这是不是最小和最大使用的内存啊

  18. fangod
    2013年5月22日17:13 | #18

    下面这个截至是什么意思呢 CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304

  19. 海洋之心
    2013年5月22日21:03 | #19

    proxy.config.cache.ram_cache_cutoff 指定小于些值的尺寸存储在内存中

  20. 纸鸢
    2013年5月22日21:03 | #20

    -1是按照比例来的,1G硬盘缓存就1M内存缓存@fangod

  21. fangod
    2013年5月22日21:55 | #21

    @海洋之心
    也就是说 我把这个值设定在800mb 缓存的东西 比方一个文件 他小于800mb就缓存到内存里面 大于800mb就缓存到硬盘里面是吗

  22. fangod
    2013年5月22日21:58 | #22

    CONFIG proxy.config.cache.ram_cache.size INT 7340032000 我设置成7g内存没问题吧…..这么不会是1gb硬盘缓存7gb内存吧

  23. fangod
    2013年5月22日22:15 | #23

    对了 那个规则怎么写 有个大体的方法吗, 正则表达式吗 学习下 能大体写下怎么写规则吗 我想自己弄几个网站的规则

  24. 纸鸢
    2013年5月23日12:44 | #24

    加到我们社区的群吧。问了问题,弄懂之后要写blog分享给大家,我们才回答了。@fangod

  25. fangod
    2013年5月23日13:33 | #25

    群号 QQ群吗 如果是别的 告诉我群号和加的方法

  26. 纸鸢
    2013年5月23日13:50 | #26

    281057393@fangod

  27. 伊松
    2013年5月27日20:37 | #27

    @fangod
    能留一下你的QQ吗? 我也是做isp接入的,正在研究ats做正向代理,通过ros强制转换tcp 80的访问到ats
    你看你的进展已经非常大了,希望我们能共同学习ats

  28. 伊松
    2013年5月28日21:32 | #28

    28120417我的QQ,fangod 大哥,看到请加我

  29. beckjiang
    2013年8月22日23:49 | #29

    正向代理基本上搞定。但是遇到一个问题。现在网上很多在线视频网站都是使用FLASH的P2P工作。这导至根本无法缓存。小弟自己写了个DLL。HOOK特定浏览器。禁止使用FLASH P2P。不过在线视频的速度也就随之下降低。这是一个很杯具的事情!!一直都没有找到好的办法来处理这个问题!!如果ATS能代理RTMP。那就…………………………

  30. xinyun312
    2013年9月12日08:33 | #30

    @beckjiang
    rtmp是个流协议,不支持缓存

  31. ats-newer
    2013年10月16日15:19 | #31

    对大的很大的视频文件mp4格式的缓存要做特别的设置么?因为我遇到的是小视频确实是可能缓存的,但是一个160M左右就没有缓存进去。

  32. 纸鸢
    2013年10月17日07:28 | #32

    可能你需要配置一下合适的最大文件size,然后配置下适合的平均文件大小@ats-newer

  33. houzhuo-nanhai
    2014年3月10日18:45 | #33

    你好,为什么我装插件的时候没有知道这个日志文件cacheurl.log。试了还几次了,都是没有这个文件。另外,这句echo “cacheurl.so” >>/usr/local/etc/trafficserver/plugin.config,里面的cacheurl.so这个文件需要用到绝对路径吗,我用绝对路径试了也还是没出现日志文件。

  34. ats-gz
    2014年5月21日13:37 | #34

    如果是视频,流化这块没处理,目前有.so文件可用吗

  35. mohaja
    2014年10月27日21:42 | #35

    我读你的网站使用谷歌翻译。有趣的交代。想问一下,我们是否可以缓存的YouTube?你有正则表达式呢?

    谢谢。

    P / S:我用谷歌翻译来问这个问题。对不起,如果不准确的。

  36. 纸鸢
    2014年10月27日22:08 | #36

    @mohaja
    翻译得很好,能理解你的意思。如果你可以使用firebug或者谷歌浏览器的F12调试工具找到YTB的视频URL,然后贴在这里,我们可以帮你写成正则表达式。

  37. 纸鸢
    2014年10月27日22:10 | #37

    @mohaja
    但是cacheurl.so这个插件并不能解决所有类型的视频规则,例如有视频文件动态分片的情况等等。

  38. 纸鸢
    2014年10月27日22:12 | #38

    @mohaja
    我们这里的网络环境导致访问YTB失败,因为有一个牛逼的GFW,呵呵

  39. Cong
    2015年2月15日16:47 | #39

    @纸鸢
    同问怎么可以用ATS来实现YTB的缓存。
    您所说的youtubeURL是指怎样的URL?
    是类似这种URL吗?

    watch?v=6n-ANRWqll8

    还是具体要看哪一部分呢?
    谢谢

    • 纸鸢
      2015年3月25日19:01 | #40

      firebug抓包,看真实的flv或者mp4的地址。

  40. 匿名
    2015年5月25日15:53 | #41

    hi,请问下ATS的这个缓存功能是不是可以作为cdn流媒体的缓存加速呢?

  41. 舒克
    2015年5月25日15:54 | #42

    hi,请问ATS的这个缓存功能是不是可以用来作为cdn的流媒体加速呢?

  1. 本文目前尚无任何 trackbacks 和 pingbacks.