设为首页 加入收藏

TOP

cloudflare的新waf,用Lua实现的(二)
2015-07-24 05:44:04 来源: 作者: 【 】 浏览:11
Tags:cloudflare 的新 waf Lua 实现
的优化,火焰图快速显示闭包的广泛使用导致缓慢,由于它们的花费在LuaJIT里。编译器的修改移除了它们的使用。<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPC9ibG9ja3F1b3RlPgo8YmxvY2txdW90ZT4KPHA+tNPP4M2stcTQxc+iyfqzybXEwe3Su9bWytPNvM/Uyr7Su7j2uq/K/dbQu6i30aOouvbC1Mv8sb7J7bX308O1xMjOus66r8r9o6m1xNfcyrG85KGj1eLKubXDxNy/7MvZyrax8MjIteO6r8r9oaPU2tXiwO+jrL/J0tS63Mjd0te12L+0tb2jrNX91PKx7bTvyr20psDtus20rsalxeTKx9fusLq587XEstnX96Oo1eKyorK7xua51qOs0vLOqtXivs3Kx1dBRtf2yrLDtKOs1vfSqsrHo6mhozwvcD4KPC9ibG9ja3F1b3RlPgo8cD4gICAgICAgICAgICA8aW1nIHNyYz0="https://www.cppentry.com/upload_files/article/49/1_54vyp__.png" alt="\">

检查这些跟踪信息,我们决定改善LuaJIT开源项目是值得赞助的。

优化WAF最关键的是两件事:可重复的测试数据和工具检查运行的代码。火焰图和lulip的结合意味着通过精确的检查时间花在哪里可以让WAF性能有一个巨大的飞跃。规则编译器的使用意味着优化可以迅速的应用到所有需要的规则上。不用去猜测哪里是慢的:测量它!!

生成的代码大量使用局部变量(其中有许多是由编译器自动生成)和内存化。我们还使用Lua 字节码的nginx Lua的缓存,以加快自定义规则的加载,一个两阶段的内存缓存,它使用lua_shared_dict和memcached作额外的加载加速。而我们的全球分布式数据存储意味着新的规则可以在几秒钟内铺开。

最后,衡量WAF在生产环境的运作,我们有一个全球的指标体系,收集cloudflare 网络所有部分的指标,这儿是一个图标显示了WAF几个小时的运行。它显示了处理一个请求的平均时间在毫秒内。这个waf运行每个请求花费380us到480us之间,大大优于1ms的目标。


随着语言上各种优化,编译器和WAF核心表明我们拥有了一个非常快的纯Lua waf,这给了我们很大的灵活性,并且运行在nginx核心里。这是又一个项目指出了Lua成为了一门极其优秀的嵌入式语言,在Lua里,我们可以写Cloudflare需要的各种可扩展的逻辑。

原文链接: http://blog.cloudflare.com/cloudflares-new-waf-compiling-to-lua 膜拜前淘宝大神 章亦春

-------- translate by ??有神(814329735@qq.com)


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva 10692 - Huge Mods(数论) 下一篇SPOJ 220 Relevant Phrases of An..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: