Nginx添加lua模块的实现方法

安装 lua

wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make && make install PREFIX=/usr/local/LuaJIT

etc/profile 加入

# lua
export LUAJIT_LIB=/usr/local/LuaJIT/lib
export LUAJIT_INC=/usr/local/LuaJIT/include/luajit-2.0

source etc/profile

下载 ngx_devel_kit 模块

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz

NDK (nginx development kit) 模块是一个拓展 nginx 服务器核心功能的模块,第三方模块开发可以基于它来快速实现。 NDK 提供函数和宏处理一些基本任务, 减轻第三方模块开发的代码量

下载 lua-nginx-module 模块

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz 

lua-nginx-module 模块使 nginx 中能直接运行 lua

查看原始编译

nginx -V

如:
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-http_v2_module

进入 nginx 原始目录:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-http_v2_module --add-module=/root/lua-nginx-module-0.10.9rc7/ --add-module=/root/ngx_devel_kit-0.3.0

只 make,不执行 make install。

编译报错应该就是 lua 环境变量不对。

nginx -V 命令报错
./nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

解决:
echo "/usr/local/LuaJIT/lib" >> /etc/ld.so.conf

ldconfig

成功之后可以 nginx -V 查看,无报错即可。

把原来的 nginx 备份为 nginx_old

cp objs/nginx 到原来的 nginx 并覆盖。

在编译目录执行

make upgrade

Nginx 添加 lua 模块

测试:

server{
 ...
 location /lua {
  default_type 'text/html';
  content_by_lua '
    ngx.say("hello, lua!")
  ';
 }
 ...
}

浏览器打开:

http://blog.13sai.com/lua

可以看到 hello, lua!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Nginx安装lua-nginx-module模块的方法步骤

    ngx_lua_module 是一个nginx http模块,它把 lua 解析器内嵌到 nginx,用来解析并执行lua 语言编写的网页后台脚本 特性很牛叉,可自行百度查看,这里主要是示范一下,如何在Nginx下安装lua-nginx-module模块 当然,如果你之前没有安装过Nginx,而且嫌安装麻烦,可直接下载openresty安装简单快捷,http://openresty.org/cn/installation.html(阿里的大牛章亦春的作品,膜拜~~~) 1.下载安装LuaJIT

  • 使用Lua编写Nginx服务器的认证模块的方法

    过去两天里,我解决了一个非常有趣的问题.我用一个nginx服务器作为代理,需要能够向其中添加一个认证层,使其能够使用外部的认证源(比如某个web应用)来进行验证,如果用户在外部认证源有账号,就可以在代理里认证通过. 需求一览 我考虑了几种解决方案,罗列如下: 用一个简单的Python/Flask模块来做代理和验证. 一个使用subrequests做验证的nginx模块(nginx目前可以做到这一点) 使用Lua编写一个nginxren认证模块 很显然,给整个系统添加额外请求将执行的不是很好,因为

  • Nginx添加lua模块的实现方法

    安装 lua wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar -zxvf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5 make && make install PREFIX=/usr/local/LuaJIT etc/profile 加入 # lua export LUAJIT_LIB=/usr/local/LuaJIT/lib export LUAJIT_INC=/usr/local/LuaJIT

  • Nginx使用Lua模块实现WAF的原理解析

    目录 一.WAF产生的背景 二.什么是WAF 三.工作原理 四.WAF作用 五.WAF和传统防火墙的区别 六.WAF和DDos 七.Nginx WAF功能 八.Nginx Waf防护流程 九.基于Nginx实现的WAF 9.1安装依赖包 9.2安装LuaJIT2.0 9.3安装ngx_devel_kit 9.4安装lua-nginx-module 9.5安装Nginx 9.6安装ngx_lua_waf 9.7测试效果 前言:最近一段时间在写加密数据功能,对安全相关知识还是缺少积累,无意间接触到了

  • nginx 添加http_stub_status_module模块

    目录 1. stub_status 作用说明 2.查看现有 nginx 编译参数 3.使用参数重新配置configure,在原有基础上添加上 --with-http_stub_status_module 4.将原来的 nginx 文件备份 5. 编译 6. 替换nginx二进制文件 7.重新启动nginx,查看编译参数 8. 参考官网 8.1 修改配置文件 8.2 浏览器访问 1. stub_status 作用说明 编译选项 作用 –with-http_stub_status_module Ng

  • Nginx添加ipv6模块以及遇到问题解决方案详解(亲测有效)

    1.检查nginx是否已经包含ipv6模块 nginx -V 输出结果如果没有 ipv6则不支持,如果支持ipv6,则输出结果会包含 “--with-ipv6”. 如果不支持ipv6则需要上传Nginx包,进入目录,进行重新编译(注意用户组默认是www,可以到etc下的配置文件检查具体用户组) ( 添加用户组命令:/usr/sbin/groupadd -f www     /usr/sbin/useradd -g www www ) 进入目录,进行重新编译命令: ./configure --us

  • nginx添加ssl模块的方法教程

    前言 原已经安装好的nginx,如果不清楚安装方法的朋友可以参考这篇文章:http://www.jb51.net/article/128758.htm 现在需要添加一个未被编译安装的ssl模块: nginx -V 可以查看原来编译时都带了哪些参数 原来的参数: --prefix=/app/nginx 添加的参数: --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module 步骤如下: 1. 使用参

  • Nginx添加ngx-fancyindex模块的方法

    为了安全起见,Nginx默认是不允许列出整个目录的,即当访问一个不包含首页的目录时会返回 403 错误,当我们需要将服务器某一目录列出索引以便下载,我们可以使用 autoindex 来实现,但是 autoindex 模块生成的索引非常简陋,我们可以使用 ngx-fancyindex 代替 autoindex 实现索引目录美化. 本文为已安装 Nginx 环境下的操作. 安装ngx-fancyindex 第一步 查看已安装的 Nginx 版本与模块信息: nginx -V 输出信息类似于: ngi

  • linux下为nginx添加jvmroute模块的方法

    复制代码 代码如下: cd /optwget http://nginx.org/download/nginx-1.2.8.tar.gztar zxvf /opt/nginx-1.2.8.tar.gzwget https://nginx-upstream-jvm-route.googlecode.com/files/nginx-upstream-jvm-route-0.1.tar.gztar zxvf /opt/nginx_upstream_jvm_routecd /opt/nginx-1.2.8

  • nginx动态添加访问白名单的方法

    本文实现的功能是:网站启用访问白名单,对于不在白名单中又需要访问的客户,只需打开一个不公开的网址,然后自动获得2小时的访问权限,时间达到后自动删除访问权限 实现此功能需要以下几个步骤: nginx启用访问白名单 客户打开指定网址自动添加访问白名单 为网址添加简单的认证 每两个小时自动恢复默认白名单,删除临时IP访问权限 一.nginx配置访问白名单 这个就比较简单了,简单贴一下配置: ............nginx.conf........... geo $remote_addr $ip_w

  • Nginx基础学习之realip模块的使用方法

    前言 nginx模块分为两种,官方和第三方,我们通过命令 nginx -V 查看 nginx安装信息,可以看到 下面有关 --with的nginx启动加载的模块信息. realip模块 用途 :当本机 Nginx 处于反向代理后端时可以获取到用户的 真实IP地址 . 使用 : realip 功能需要 Nginx 添加 ngx_http_realip_module 模块,默认情况下是不被编译,如果需要添加,请在编译时添加 --with-http_realip_module 选项开启它. reali

  • Nginx利用Lua+Redis实现动态封禁IP的方法

    一.背景 我们在日常维护网站中,经常会遇到这样一个需求,为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝提供服务. 本文给大家介绍的是Nginx利用Lua+Redis实现动态封禁IP的方法,下面话不多说了,来一起看看详细的介绍吧 二.架构 实现 IP 黑名单的功能有很多途径: 1.在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求: 2.在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者

随机推荐