Lua 是一个简洁、轻量、可扩展的脚本语言,也是号称性能最高的脚本语言,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。
Lua原生支持的数据类型非常之少,它只提供了nil、数字(缺省是双精度浮点数,可配置)、布尔量、字符串、表、子程序、协程(coroutine)以及用户自定义数据这8种。但是其处理表和字符串的效率非常之高,加上元表的支持,开发者可以高效的模拟出需要的复杂数据类型(比如集合、数组等)。Lua是一个动态弱类型语言,支持增量式垃圾收集策略。有内建的,与操作系统无关的协作式多线程(coroutine)支持。它还可以用于嵌入式硬件,不仅可以嵌入其他编程语言,而且可以嵌入微处理器中。

Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,这样可以将一些功能在前端Nginx反向代理层解决,比如登录校验、js合并、甚至数据库访问等等。

但是,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。

Nginx_Lua_Module是一个Nginx第三方模块,通过将Lua解释器集成进Nginx的配置中,支持引用Lua脚本文件/代码段实现业务逻辑,从而极大增强了Nginx的能力。由于lua的紧凑、快速以及内建协程,所以在保证高并发服务能力的同时极大地降低了业务逻辑实现成本。
Nginx+Lua是一个非常好的组合,它允许使用一个高性能的脚本语言扩展Nginx。Nginx有很多方法是自带的,但是使用Lua没有限制的。

本文将介绍ngx_lua的安装与配置过程。

下载及安装Lua

进入Lua项目官网下载中心: http://luajit.org/download.html ,选择即将安装的版本下载到自定义路径中:

文章作者: 安全书
文章链接: https://lua.ren/zl/2016-01-01-866_Nginx_Lua_Module%E6%89%A9%E5%B1%95%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE_%E9%80%82%E7%94%A8%E4%BA%8EUbuntu%E7%B3%BB%E7%BB%9F/
版权声明: 本博客所有文章除特别声明外,均采用 null 许可协议。转载请注明来自 安全书