2

我想强制 squid 代理从与 Youtube 相关的所有内容中使用代理缓存对等点。

我的主要 squid 服务器在服务器 A 上,这是一个非常简单的设置,几乎没有任何规则,一切都是授权的。

服务器 A 通过 OpenVPN 链接到服务器 B。服务器 B 也设置了 squid 代理并且运行良好(使用 ssh 隧道测试,没问题)。

在服务器 AI 上添加了这些规则:

acl youtube_videos_regx url_regex -i ^http://[^/]+\.youtube\.com/videoplayback\?
acl youtube_videos_regx url_regex ^http://(.*?)/get_video\?
acl youtube_videos_regx url_regex ^http://(.*?)/videodownload\?
acl youtube_videos_regx url_regex ^http://(.*?)/videoplayback\?
acl youtube_videos dstdomain .youtube.com
acl youtube_videos dstdomain .youtube-nocookie.com
acl youtube_videos dstdomain .googlevideo.com
acl youtube_videos dstdomain .ytimg.com
cache_peer 10.4.0.1 parent 3128 0 proxy-only no-query connect-timeout=5
cache_peer_access 10.4.0.1 allow youtube_videos
cache_peer_access 10.4.0.1 allow youtube_videos_regx
cache_peer_access 10.4.0.1 deny all

但这似乎不起作用:

1383861430.377    578 192.168.0.103 TCP_MISS/200 192976 GET http://r9---sn-5hn7ym7e.googlevideo.com/videoplayback? - HIER_DIRECT/208.117.250.14 application/octet-stream
1383861430.636    935 192.168.0.103 TCP_MISS/200 238032 GET http://r9---sn-5hn7ym7e.googlevideo.com/videoplayback? - HIER_DIRECT/208.117.250.14 application/octet-stream
1383861430.642   2353 192.168.0.103 TCP_MISS/200 238032 GET http://r9---sn-5hn7ym7e.googlevideo.com/videoplayback? - HIER_DIRECT/208.117.250.14 application/octet-stream
1383861432.467    617 192.168.0.103 TCP_MISS/200 192976 GET http://r9---sn-5hn7ym7e.googlevideo.com/videoplayback? - HIER_DIRECT/208.117.250.14 application/octet-stream

有时它有效:

1383860987.725    125 192.168.0.103 TCP_MISS/204 353 GET http://r20---sn-5hn7ym7r.googlevideo.com/generate_204 - FIRSTUP_PARENT/10.4.0.1 text/html

可能是因为数据类型?

如果是这样,我不知道要添加什么样的规则。

提前致谢。

4

1 回答 1

3

好的,我找到了解决问题的方法。

我只需要将它添加到我的配置文件中:

never_direct allow youtube_videos
never_direct allow youtube_videos_regx

这 2 行,强制 squid 不使用直接连接到我的 2 acl。

于 2013-11-09T20:04:42.953 回答