Nginx官方版本集成lua-nginx模块

简介

Openresty提供lua-nginx模块,提供了大量lua模块以扩展Nginx的各种功能。Nginx官方版本默认没有集成lua-nginx模块,可通过手动编译的方式集成该模块。

下载源代码

本文采用源码编译Nginx和ngx_lua模块,具体包括5个组件:Nginx、luajit、ngx_devel_kit、lua-nginx模块、lua-resty-core和lua-resty-lrucache。

组件名描述版本下载链接
NginxNginx官方库1.25.3https://github.com/nginx/nginx/releases/tag/release-1.25.3
luajitlua即时编译器v2.1-20231117https://github.com/openresty/luajit2/releases/tag/v2.1-20231117
ngx_devel_kitlua-nginx依赖的开发包v0.3.3https://github.com/vision5/ngx_devel_kit/releases/tag/v0.3.3
lua-nginxlua-nginx框架v0.10.25https://github.com/openresty/lua-nginx-module/releases/tag/v0.10.25
lua-resty-corelua-nginx核心模块v0.1.27https://github.com/openresty/lua-resty-core/releases/tag/v0.1.27
lua-resty-lrucachelua-nginx lru缓存模块v0.13https://github.com/openresty/lua-resty-lrucache/releases/tag/v0.13

在编译环境创建/opt/nginx/modules目录,将上述组件的tar.gz下载到/opt/nginx/modules目录下解压。
在这里插入图片描述

编译luajit

cd modules/luajit2-2.1-20231117/
make -j 4 && make install PREFIX=/opt/nginx/luajit2-2.1
在这里插入图片描述

编译&安装nginx

# 编译nginx
cd ../nginx-release-1.25.3
export LUAJIT_LIB=/opt/nginx/luajit2-2.1/lib
export LUAJIT_INC=/opt/nginx/luajit2-2.1/include/luajit-2.1
 
 auto/configure --prefix=/usr/local/nginx-1.25.3 \
         --with-ld-opt="-lpcre -Wl,-rpath,/opt/nginx/luajit2-2.1/lib" \
         --with-http_v2_module \
         --add-module=/opt/nginx/modules/ngx_devel_kit-0.3.3 \
         --add-module=/opt/nginx/modules/lua-nginx-module-0.10.25

make -j4 && make install

# 安装lua-resty-core和lua-resty-lrucache模块
cd ../lua-resty-core-0.1.27
make install PREFIX=/opt/nginx
cd ../lua-resty-lrucache-0.13
make install PREFIX=/opt/nginx

测试ngx_lua基本功能

cd到nginx的安装目录/usr/local/nginx-1.25.3/下,修改conf/nginx.conf
在http全局配置增加一行 lua_package_path “/opt/nginx/lib/lua/?.lua;;”;配置,引用lua-resty-core和lua-resty-lrucache模块。
然后在server 80配置下增加测试location /test_lua:

location /test_lua {
            content_by_lua_block {
                ngx.say("hello nginx lua")
            }
        }

配置如下图所示:
在这里插入图片描述
执行sbin/nginx启动nginx进程,然后执行curl localhost:80/test_lua访问。输出"hello nginx lua",说明lua-nginx模块已加载成功。
在这里插入图片描述

参考文档

https://github.com/openresty/lua-nginx-module

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值