基本问题:
我们在当前的基础架构设置中遇到了非常奇怪的行为:
>如果文件是从已从上传的同一IP /机器下载的,则从Amazon S3的文件下载速度降至<2 kb / s(在下载速度完全正常的~10次之后)
>在我们的其他机器上,我们可以下载文件几千次而且看不到这种行为
额外细节:
>使用木偶设置相同的机器
>它们都是在KVM上运行ubuntu 12.04.4的虚拟机,在ubuntu 12.04.4和13.04主机上运行libvirtd
>每个VM都拥有自己的公共IP,流量来自该公共IP
>几分钟后,可以再次以> 5 mb / s的速度下载文件几次(似乎是10次)
>使用fog gem从rails应用程序上传文件
用wget测试:
使用wget,您可以在受影响的计算机上看到我们上传的文件的输出:
--2014-07-31 16:33:38-- http://s3-eu-west-1.amazonaws.com/not_the_real_file_url Resolving s3-eu-west-1.amazonaws.com (s3-eu-west-1.amazonaws.com)... 178.236.6.160 Connecting to s3-eu-west-1.amazonaws.com (s3-eu-west-1.amazonaws.com)|178.236.6.160|:80... connected. HTTP request sent,awaiting response... 200 OK Length: 2801149 (2.7M) [text/plain] Saving to: `/dev/null' 0% [ ] 10,111 1.05K/s eta 68m 26s
68米就像这样! (它确实在那之后完成下载)
--2014-07-31 16:39:21-- https://s3.amazonaws.com/Minecraft.Download/versions/14w31a/minecraft_server.14w31a.jar Resolving s3.amazonaws.com (s3.amazonaws.com)... 72.21.211.199 Connecting to s3.amazonaws.com (s3.amazonaws.com)|72.21.211.199|:443... connected. HTTP request sent,awaiting response... 200 OK Length: 10342238 (9.9M) [application/octet-stream] Saving to: `/dev/null' 32% [====================================> ] 3,370,945 747K/s eta 12s
我们目前的解决方法
我们当前的解决方案是使用我们的HAProxy作为透明的HTTP代理.
这意味着我们定义了一个前端“cloud.example.com”,并且后端首先用“s3-eu-west-1.amazonaws.com”替换HOST请求,然后使用s3-eu-west-1.amazonaws. com:80作为服务器.对于亚马逊来说,看起来请求来自我们的代理,我们可以再次下载我们存储在S3上的文件数千次. 原文链接:https://www.f2er.com/ubuntu/451896.html