如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest

来源:网络转载 责任编辑:张俊
默认
特大
宋体
黑体
雅黑
楷体


如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest(图2)


如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest(图4)


如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest(图6)


如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest(图8)


如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest(图10)


如何用正确姿势来学习获得锤子科技捐赠对象的OpenRest(图13)


(点小图查看大图)
点击图片看大图

我个人之前主要是用 Python 来完成开发工作,包括云查杀和反钓鱼系统,都是 Python 完成的。在 2011 年左右接触到 nginx 的 C Module 开发,被异步的高性能颠覆了三观,只是门槛太高,一直想找一个像 Python 一样简单,像nginx C Module一样高效的技术。

所以在 2012 年,得知 OpenResty 这个项目的时候,我就在企业安全一个新项目里面,使用它作为服务端的主要技术。

在今年上半年开始在 Github 上面,把积累的经验写成一本电子书《OpenResty最佳实践》,并在刚过去的 11 月 14 号,以社区名义组织了 OpenResty 的第一次技术大会。

1. OpenResty 是什么,适合什么场景下使用

和大部分知名开源软件诞生在欧美国家不同,OpenResty 自身和依赖的主要组件都是金砖国家的开发者发明的,这点还挺有意思。

Nginx 是俄罗斯人发明的, Lua 是巴西几个教授发明的,中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中,实现了 OpenResty 这个高性能服务端解决方案。

通过 OpenResty,你可以把 nginx 的各种功能进行自由拼接, 更重要的是,开发门槛并不高,这一切都是用强大轻巧的 Lua 语言来操控。

它主要的使用场景主要是:

  • 在 Lua 中揉和和处理各种不同的 nginx 上游输出(Proxy,Postgres,Redis,Memcached 等)

  • 在请求真正到达上游服务之前,Lua 可以随心所欲的做复杂的访问控制和安全检测

  • 随心所欲的操控响应头里面的信息

  • 从外部存储服务(比如 Redis,Memcached,MySQL,Postgres)中获取后端信息,并用这些信息来实时选择哪一个后端来完成业务访问

  • 在内容 handler 中随意编写复杂的 Web 应用,使用 同步但依然非阻塞 的方式,访问后端数据库和其他存储

  • 在 rewrite 阶段,通过 Lua 完成非常复杂的 URL dispatch

  • 用 Lua 可以为 nginx 子请求和任意 location,实现高级缓存机制

组织 OpenResty 技术大会之前,我一直认为自己是一个孤独的 OpenResty 使用者,觉得自己在使用一个冷门的技术。

虽然大家都听说过 OpenResty 或者 ngx_lua,但感觉用在生产环境中使用的却少之又少,除了几个 CDN 公司外,好像没有听说过哪家知名互联网公司在使用。而 CDN 行业之所以使用,很多是受到 cloudflare 技术栈的影响,OpenResty 的作者也在国外这家 CDN 公司。

但办完这个大会,我发现使用者真的挺多,奇虎360的所有服务端团队都在使用,京东、百度、魅族、知乎、优酷、新浪这些互联网公司都在使用。有用来写 WAF、有做 CDN 调度、有做广告系统、消息推送系统,还有像我们部门一样,用作 API server 的。有些还用在非常关键的业务上,比如开涛在高可用架构分享的京东商品详情页,是我知道的 ngx_lua 最大规模的应用。

2. 奇虎企业安全服务端技术选型的标准

本文有多页,请至分页导航点击下一页继续浏览

>>> 温馨提示:您还可以点击下面分页查看更多相关内容 <<<

头条

热门

Copyright ? 2012-2016 tuxi.com.cn 版权所有 京ICP备10044368号 京公网安备11010802011102号 关于我们 | 广告服务 | 诚聘英才 | 联系我们 | 友情链接 | 免责申明