OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的Web应用程序,Web服务和动态Web网关。
通过利用各种精心设计的Nginx模块(其中大部分由OpenResty团队自己开发),OpenResty有效地将nginx服务器转变为功能强大的Web应用服务器,其中Web开发人员可以使用Lua编程语言编写各种脚本现有的nginx C模块和Lua模块,构建极高性能的Web应用程序,能够在一个盒子中处理10K~1000K +连接。
OpenResty旨在完全在Nginx服务器中运行您的服务器端Web应用程序,利用Nginx的事件模型不仅可以与HTTP客户端进行非阻塞I / O,还可以使用MySQL,PostgreSQL,Memcached和Redis等远程后端。
OpenResty的实际应用包括动态Web门户和Web网关,Web应用防火墙,用于移动应用/广告/分布式存储/数据分析的Web服务平台,以及成熟的动态Web应用和网站。用于运行OpenResty的硬件范围从非常大的金属到资源非常有限的嵌入式设备。我们的生产用户每天只需少量机器就能为数百万活跃用户提供数十亿的请求,这种情况并不少见。
OpenResty不是Nginx分支。它只是一个软件包。在OpenResty中应用于Nginx核心的大多数补丁已经提交给官方的Nginx团队,并且提交的大多数补丁也已被接受。我们正在努力不分叉Nginx并始终使用官方Nginx团队中最新的最佳Nginx核心。
opm
):包存储库,opm源核心模块
核心模块捆绑在OpenResty包中。
另请注意,resty
OpenResty包中包含命令行客户端。该命令行客户机的来源可以在Github找到。
核心Nginx模块
要了解有关Nginx核心模块的更多信息,请参阅Nginx文档。Nginx附带的一些模块(并非所有模块都默认构建):
第三方Nginx模块
核心库
核心库捆绑在OpenResty包中,您无需单独安装它们。
网络框架
Web开发基础
路由库
请求分段解析器
中间件和API工具
模板
验证
身份验证和授权
加密
联网
数据库和存储
lua-resty-redis
并使Redis更容易操作测试和分析
消息队列和任务管理
条形码和QR码
应用库
日期和时间
这些库未建立使用lua-nginx-module
的日期时间函数(除luatz)一样ngx.today
,ngx.time
,ngx.now
,ngx.localtime
,或ngx.utctime
,但他们仍然可以来得心应手。在某些时候,我们可能需要一个更“官方”的OpenResty时间库。
ngx.now
)压缩
文字格式
二进制格式
文件格式
图像格式
本地库
高速缓存
lua-resty-lock
只允许一个请求填充新缓存度量和统计
记录
编程
Web API
其他库