Webrick透明代理

我有一个绝对简单的代理运行。

require 'webrick' require 'webrick/httpproxy' s = WEBrick::HTTPProxyServer.new(:Port => 8080, :RequestCallback => Proc.new{|req,res| puts req.request_line, req.raw_header}) # Shutdown functionality trap("INT"){s.shutdown} # run the beast s.start 

在我看来,这应该不会以任何方式影响沟通。 但是有些网站不再有用了。 特别是http://lastfm.de的嵌入式闪存播放器不起作用。

标题看起来链接:

 - -> http://ext.last.fm/2.0/?api%5Fsig=aa3e9ac9edf46ceb9a673cb76e61fef4&flashresponse=true&y=1269686332&streaming=true&playlistURL=lastfm%3A%2F%2Fplaylist%2Ftrack%2F42620245&fod=true&sk=ee93ae4f438767bf0183d26478610732&lang=de&api%5Fkey=da6ae1e99462ee22e81ac91ed39b43a4&method=playlist%2Efetch GET http://play.last.fm/preview/118270350.mp3 HTTP/1.1 Host: play.last.fm User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2) Gecko/20100308 Ubuntu/10.04 (lucid) Firefox/3.6 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Proxy-Connection: keep-alive Cookie: AnonWSSession=ee93ae4f438767bf0183d26478610732; AnonSession=cb8096e3b0d8ec9f4ffd6497a6d052d9-12bb36d49132e492bb309324d8a4100fc422b3be9c3add15ee90eae3190db5fc localhost - - [27/Mar/2010:11:38:52 CET] "GET http://www.lastfm.de/log/flashclient/minor/Track_Loading_Fail/Buffering_Timeout HTTP/1.1" 404 7593 - -> http://www.lastfm.de/log/flashclient/minor/Track_Loading_Fail/Buffering_Timeout localhost - - [27/Mar/2010:11:38:52 CET] "GET http://play.last.fm/preview/118270350.mp3 HTTP/1.1" 302 0 

我有一些暗示通信干扰的原因或内容。

也许是Lastfm.de上的crossdomain.xml文件?

它设置为仅允许来自以下域的Flash访问:

 *.last.fm *.audioscrobbler.com 87.117.229.54 

http://lastfm.de/crossdomain.xml

WEBrick正在阻止I / O ……这意味着它无法传输响应。 例如,如果您在YouTube页面上查看video,则在代理下载了所有video后,流将不会转发到您的浏览器。 如果您希望在下载过程中在浏览器中播放video,则必须寻找像EventMachine这样的非阻塞I / O解决方案。