微拓扑

  • Home
  • Archives
  • Tags
  • Wall
微拓扑
Another bloody day.
  1. 首页
  2. IT
  3. 正文

解决从安装Varnish的web服务器上下载东西时出错和"爆缸"的问题

13/09/2013 946点热度 0人点赞 0条评论

varnish_crash1

用DigitalOcean下载了一个2个多G的EVE用来测试下DigitalOcean的G口是不是还想以前一样给力. 果然依然能到80MB/S

varnish_crash4

然后把EVE考到了DigitalOcean VPS的www目录用来从WeLoveServers新升级的G口上wget一下测试下DO的上传能力和WLS的下载能力, 结果却一直无法连上

varnish_crash2

等了好久返回出错页面

varnish_crash3

然后打开DigitalOcean上的探针发现, 每次下载请求发起时探针都会显示和"爆缸"一样. 然后换了BudgetVM的Xen依然是这个毛病. 认为可能是LNMPV里面Varnish在作怪. 于是查资料的时候发现下面Varnish的State Diagram. 收藏.

varnish

 

连接不成功和"爆缸"是由于Varnish的Cache的问题. Varnish尝试将这个2G的文件建立Cache导致崩溃. 解决方法如下:

在sub vcl_fetch里添加

if (beresp.http.Content-Length ~ "[0-9]{8,}") { set req.http.x-pipe = "1"; return (restart); } //不对10MB以上的文件进行Cache操作

在sub vcl_recv里添加

if (req.http.x-pipe && req.restarts > 0) {remove req.http.x-pipe;return (pipe);}

标签: cache DigitalOcean lnmpv varnish WeLoveServers 爆缸
最后更新:14/09/2013

kyaky

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复

COPYRIGHT © 2021 vtp.me. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang