VPS 上 Varnish 与 Nginx 反向代理 那个更加出色? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
boro
V2EX    NGINX

VPS 上 Varnish 与 Nginx 反向代理 那个更加出色?

  •  
  •   boro 2015-03-24 00:56:48 +08:00 5002 次点击
    这是一个创建于 3933 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,希望大家分享下自己的实际案例。
    Thanks!
    9 条回复    2015-03-24 10:35:14 +08:00
    sNullp
        1
    sNullp  
       2015-03-24 01:26:20 +08:00
    Varnish
    见:/t/141198
    sNullp
        2
    sNullp  
       2015-03-24 01:26:56 +08:00
    sorry 忘加了空格 /t/141198
    lsylsy2
        3
    lsylsy2  
       2015-03-24 01:30:53 +08:00 via Android
    @sNullp 有测试过其他的诸如traffic server,squid(2和3)之类么?
    sNullp
        4
    sNullp  
       2015-03-24 01:36:38 +08:00
    @lsylsy2 有测过 squid 3
    如果我没记错的话,squid 不能完全支持这种慢速的 backend(在第一个请求完成前来第二个请求会再次访问 backend)。nginx 直到最近才有个参数可以号称支持,但是非常 buggy。
    Showfom
        5
    Showfom  
    PRO
       2015-03-24 01:39:36 +08:00
    大内存 Varnish
    小内存 Nginx

    当然如果可以的话上 SSD 性能更佳
    sNullp
        6
    sNullp  
       2015-03-24 01:43:49 +08:00
    @lsylsy2 sorry, 我把 varnish 和 squid 说反了。
    squid 是我最后使用的针对大文件的反代。就是因为 nginx 和 varnish 在这种场合下都有难处理的 behavior(要么是请求会被block很久,要么是 Range 请求返回 200 而不是 206)。
    iCodex
        7
    iCodex  
       2015-03-24 01:50:13 +08:00 via Android
    @sNullp varnish 可以处理range的,但确实对大文件处理上不如squid
    sNullp
        8
    sNullp  
       2015-03-24 02:25:07 +08:00
    @iCodex 是可以,但是就像我说的在文件很大仍在 streaming 的时候 range 请求被 block 直到整个文件传下来,要么也可以配置成再访问一次后端,但仍然很慢(没有利用第一次得到的数据)
    可以用我上面那个脚本测试一下,当时不同 server 的 behavior 我现在也记不太清楚了。半年前的事情了。。。
    lecher
        9
    lecher  
       2015-03-24 10:35:14 +08:00 via iPad   3
    这个还要看命中率的问题,就缓存处理效果来说
    varnish可配置的参数非常多,纯内存处理非常快,用来做rest接口的反代非常好用,但是如果命中率太低热点数据不集中,会出现内存被挤满但是处理很慢的情况,因为内存满之后会反复清理掉数据,去后端重新获取数据。不适合做大数据缓存,比如图片请求处理的缓存,此外就是没有持久缓存磁盘的策略,重启服务之后需要做数据预热处理,才能上线使用,不然后端容易被请求堆满,有雪崩效应的风险。做纯反代
    squid内存处理比varnish弱一些,但是优势在于本地存储策略可以配置的空间很大,用来做长时间不会变动的请求比较方便,比如静态html页面,图片。但是对于带参数请求的处理没有varnish的策略好,清理缓存的策略不太方便,用超时触发向后端确认请求是否失效的策略,需要设置时间的长度很微妙,需要根据实际情况去调整。重启服务只需要读取本地数据就能完成大部分数据的预热是优势。
    nginx很轻量,基本功能就是反代,需要使用其它功能需安装扩展插件,缓存策略很弱,更新需要手动清理缓存,否则只能等超时重新缓存。
    如果只有vps,建议nginx处理足矣,在请求量小内存也不是特别大的时候,nginx完全够用,varnish对内存需求太大,只做纯反代不缓存略显浪费。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3371 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:37 PVG 12:37 LAX 20:37 JFK 23:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86