与其被自己的本性牵着走而痛苦,倒不如试着改变自己。 收藏本站
登陆 / 注册 搜索

阅读:1.2万   回复: 4

Nginx 安装 lua-nginx-module 模块

原创 [复制链接]
小执念 古黑浩劫论坛大牛 2019-4-24 16:57 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
一、什么是 Lua
Nginx 安装 lua-nginx-module 模块 nmapportscanner.info-Know-everything-aboutLUA-1.png

Lua 是一个简洁、轻量、可扩展的脚本语言,也是号称性能最高的脚本语言,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark 的脚本。当你把他的源码下下来编译后,你会发现解释器居然不到 200k,非常变态。。。很多应用程序使用 Lua 作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。

二、什么是 nginx_lua

🧑‍🌾‏🥼🗝☠🖕



ngx_lua 是 Nginx 的一个模块,将 Lua 嵌入到 Nginx 中,从而可以使用 Lua 来编写脚本,这样就可以使用 Lua 编写应用脚本,部署到 Nginx 中运行。常常用 ngx_lua 编写 WAF 规则,部署在 WAF 服务器上。

三、安装 LuaJIT
🧓‏👜🪝😰🖕
官网(http://luajit.org/download.html

2.0.5 是稳定版 ,下载编译安装它。
  1. wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
复制代码

👴‎🩳🧪🥲👎


我在里面没有看到 configure 文件,反而看到了 Makefile ,所以直接编译安装了。
  1. make PREFIX=/usr/local/luajit && make install PREFIX=/usr/local/luajit
复制代码


安装成功提示 ==== Successfully installed LuaJIT 2.0.5 to /usr/local ====

👀🧳🍒‼🐟‎设置临时环境变量:
  1. export LUAJIT_LIB=/usr/local/luajit/lib
  2. export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
复制代码


四、下载需要的模块

👩‌💍⚒😀👍



下载好只需解压,不需要单独安装。

1.ngx_devel_kit(NDK)模块
源码地址 https://github.com/simplresty/ngx_devel_kit/tags👮‍♂️‏👓🪣😡✊

我下载的是 v0.3.0 版本的 ,记住解压后的路径,后面会用到。
  1. wget https://codeload.github.com/simplresty/ngx_devel_kit/tar.gz/v0.3.0
  2. tar -zxvf v0.3.0
复制代码


🧠⛄🍖✔🐡‎

2.lua-nginx-module 模块
源码地址 https://github.com/openresty/lua-nginx-module/tags

我下载的是 v0.10.14 版本的,记住解压后的路径,后面会用到。

👄💈♂🦬‌
  1. wget https://codeload.github.com/openresty/lua-nginx-module/tar.gz/v0.10.14
  2. tar -zxvf v0.10.14

  3. lua-nginx-module-0.10.14
复制代码

👨‍🎨‌💄📷😚🤌
五、重新编译 nginx

进入 nginx 的源码目录(为了保险起见,我创建了一份新的 nginx 源码),在新源码目录内使用命令 nginx -V 查看之前的编译参数。

需要在后面修改为 :
  1. --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/root/web/ngx_devel_kit-0.3.0 --add-module=/root/web/lua-nginx-module-0.10.14
复制代码
👨‍⚕️‏📷🤡👌
--with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/root/web/ngx_devel_kit-0.3.0 --add-module=/root/web/lua-nginx-module-0.10.14

蓝色是新加的,那两个目录地址就是上面解压的地址。

然后 ./configure  你的编译参数。因为我们的参数可能不一样,所以这里我就不贴我的出来了。
🤞🏝🍏📳🦋‌
注意:


这里只能 make

👃🎢🧊🚭🦚‏

不能 make install

make 完成之后,备份原来的 nginx 文件,然后把编译目录下 objs/nginx 复制过去
  1. mv /usr/sbin/nginx /usr/sbin/nginx.old
  2. cp objs/nginx /usr/sbin/
复制代码

🧠⛪🥑🚷🐝‎

使用 nginx -t 命令检查是否正确。

没有提示错误的话,使用 make upgrade 命令替换老的 nginx 进程。👨‍🚒‎🕶💰🥰✊

最后用 nginx -V 查看编译参数是否为刚才的参数。

六、检查模块是否安装成功

👈🏝🍼↔🕊‎在 nginx.conf 中加入:
  1. location ^~ /hello_lua {
  2.       default_type 'text/plain';
  3.       content_by_lua 'ngx.say("hello, world")';
  4. }
复制代码

👂🍍🚷🦌‍



访问 https://你的域名/hello_lua 或 https://你的域名/hello_lua/

出现 hello, world 就表示安装成功了!

🙏⛴🥣☣🦮‍

上一篇
下一篇

评分

参与人数 1成长值 +1 金币 +1 展开 理由
八阿哥 + 1 + 1 我想说我什么也不想说。

查看全部评分

帖子热度 1.2万 ℃

小执念 古黑浩劫论坛大牛 2019-4-24 17:01 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
为什么是 访问 https://你的域名/hello_lua 或 https://你的域名/hello_lua/ 呢?
因为我这边的伪静态规则冲突了.....可能你们访问 /hello_lua 就可以。

Nginx 安装 lua-nginx-module 模块 Img-1.jpg

🙌🏝🥚☣🐢‏



梦纸 「出类拔萃」 2019-4-25 13:03 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

有空一起交流一下
清风霁月 「出类拔萃」 2019-4-26 13:00 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

火钳刘明
八阿哥 「出类拔萃」 2019-8-10 08:41 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

牛比
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表