openresty - 简介

2018-04-17 14:48:28

简介

OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty 以 Nginx 为核心,集成打包了众多的侧重于高性能Web开发的外围组件,它既是一个 web 服务器,更是一个成熟完善的开发环境。OpenResty 成功地把 Lua 语言嵌入到了  Nginx,用 Lua 作为 "胶水语言" 粘合 Nginx 的各个模块和底层接口,以脚本的方式直接实现复杂的HTTP/ TCP/UDP业务逻辑,降低了 Web Server 特别是高性能 Web server的开发门槛。

OpenResty 基于Lua5.1/LuaJit,充分利用了Lua内建的协程特性,可以无阻塞处理并发连接,而且功能代码不需要编译,可以就地修改脚本并运行,简化了开发流程,加快了开发和调试的速度,同时也缩短了开发周期,在如今这个快节奏的时代里弥足珍贵 。很多国内外大型网站都在使用 OpenRest开发后端应用,而且越来越多,知名的有 Adobe、 CloudFlare、 Dropbox、 GitHub等,充分地证明了 OpenResty 的优秀。

历史

2007年,受到当时风行的 OpenAPI 和 REST 潮流的影响 agentzh 使用 Perl 语言( 还有少量的 Haskll)开发出了一套 Web Service框架,也就是如今 OpenResty 的雏形。 由于 Perl 语言自身的限制,虽然 agentzh 做了大量的优化工作,但性能始终无法令人满意。

2009年,在综合比较了 Apache、Lighttpd 和 Nginx 等服务器框架的优劣之后 agentzh 决定以 Nginx 作为新的开发平台,与另一位同事合力用c语言重新实现了之前的 Web Service框架,并选择小巧紧凑的动态脚本语言Lua 作为上层的用户语言,就这样,我们所熟悉的高性能服务器开发包 OpenResty 诞生了。

2011年,随着 OpenResty 的用户逐渐增多,开源项目与本职工作的冲突越来越严重, agentzh 于是辞职在家,专心维护 OpenResty,为全世界的程序员提供 "免费服务"。

2012年,旧金山的一家公司向 agentzh 发出邀请,支持他以全职状态继续开发 OpenResty。没有了后顾之忧,  agentzh 全心投入了开源事业,为 OpenResty增加了大量的新功能,这段时间时 OpenResty 的迅速成长期。

2015年,第一届 OpenResty 开发大会在北京召开。大会汇集了多个国内外公司和开发者,  agentzh 本人也亲自莅临会场,总结回顾 OpenResty 的发展历程,也展望了将来的发展目标。

2016年,OpenResty 软件基金会在香港成立,并获得国内某科技公司100万元的捐赠为 OpenResty 今后持续稳定地前进提供了有力的保证,OpenResty 从此进入了新的发展阶段。

组成

OpenResty 核心组件有三个分别是:

Nginx 高性能服务器
LuaJIT 搞笑 Lua 语言解释器/编译器
ngx_lua 以模块的方式让 Lua 嵌入到 Nginx 里执行

OpenResty 还包含了其他一些非常有用的 nginx 模块和 lua-resty 库,进一步增加了开发工作的便利,比如 lua_cjson、lua_mysql、lua_memcached、lua_redis等。

性能

OpenResty 的性能几乎接近于用 C/C++ 开发的模块,有兴趣的朋友可以自己测试。

相关网站

http://openresty.org/cn/ openresty官网

https://github.com/bungle 里面对很多优良的库做了汇总,包括模板库,session库等。


备注

1.测试环境centos7 64位,openresty 版本为 1.11.2.3。
2..原文地址http://www.freecls.com/a/2712/3


©著作权归作者所有
收藏
推荐阅读
简介
天降大任于斯人也,必先苦其心志。