OpenResty是一款基于NGINX和LuaJIT构建的高性能Web平台,它为开发者提供了丰富的第三方模块。Web开发者可以利用Lua脚本语言,激发Nginx所支持的各类C及Lua模块,实现各种功能。
OpenResty(也称为ngx_openresty)是一个基于Lua扩展的NGINX可伸缩Web平台。它内部集成众多精妙的Lua库、第三方模块及其依赖项,旨在便捷地构建能够应对极高并发、高扩展性的动态Web应用、Web服务和动态网关IP。
OpenResty依托于OpenResty团队独立开发的各类设计方案精湛的Nginx模块,将NGINX合理地转变为一个强大的通用Web应用平台。这使得Web开发者和技术工程师能够利用Lua脚本语言激发Nginx所支持的各类C及Lua模块,快速构建出足以应对10K甚至100K以上单机版高并发连接的高性能Web软件系统。
OpenResty的总体目标是让Web服务直接运行在Nginx服务内部,充分运用Nginx的非阻塞I/O模型,不仅对HTTP客户端请求,甚至对远程控制后端如MySQL、PostgreSQL、Memcached及Redis等都能实现一致的高性能响应。
高性能:基于NGINX的非阻塞I/O模型,对HTTP客户端请求和远程后端服务均能实现高性能响应。
可扩展性:支持高并发、高扩展性的动态Web应用、Web服务和动态网关IP。
灵活性:利用Lua脚本语言激发Nginx所支持的各类模块,实现个性化定制。
安装OpenResty:下载OpenResty安装包,按照官方文档进行安装。
编写Lua脚本:根据需求编写Lua脚本,实现所需功能。
配置Nginx:将Lua脚本配置到Nginx中,启动Nginx服务。
更新日志:
本备选版本基于NGINX全新主杆关键版本1.19.9。
从Mike Pall维护的上下游LuaJIT同步许多改动。
引入新的宏LUAJIT_TEST_FIXED_ORDER,用以以固定顺序解析xml lua表。
当lua请求运行内存失败时,不再优雅地关闭,而是启用abort()。
现在get_ctx_table适用于应用来源于入参的ctx表,这将降低建立新ctx表的成本。
调整了应用lua-tablepool时,消除lua表的内容,metatable没有被消除的问题。
为了在应用lua-tablepool时得到更好的特性,当报表池的尺寸超过max_pool_size时,丢弃目标。
为stream分系统完成ngx.process API。