安装nginx的lua-nginx-module模块

要在 Nginx 中安装 lua-nginx-module 模块,有两种方法。

编译安装lua-nginx-module模块

手动编译 lua-nginx-module ,参考 官方安装文档,完成以下安装。

安装需要:

依赖包安装:

1
# yum install pcre-devel openssl openssl-devel

安装nginx

nginx已经安装,这里就不介绍了

下载安装LuaJIT

2.0 或者 2.1 版本都支持,但官方推荐2.1

1
2
3
4
5
6
# cd /usr/local/src
# wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
# tar zxvf LuaJIT-2.1.0-beta3.tar.gz
# cd LuaJIT-2.1.0
# make
# make install

下载ngx_devel_kit(NDK)模块

1
2
# curl -L -O https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
# tar zxvf v0.3.0.tar.gz

下载安装lua-nginx-module模块

下载解压

1
2
# curl -L -O https://github.com/openresty/lua-nginx-module/archive/v0.10.11.tar.gz
# tar zxvf v0.10.11.tar.gz

查看原nginx版本的编译参数:

1
2
# nginx -V
configure arguments: --prefix=/usr/local/nginx --with-http_sysguard_module --with-http_realip_module

编译安装:

1
2
3
4
5
6
7
8
用于告诉 nginx 如何找到 LuaJIT 2.1:
# export LUAJIT_LIB=/usr/local/luajit/lib
# export LUAJIT_INC=/usr/local/luajit/include/luajit-2.1
进入 nginx 源码包,重新编译安装
# ./configure --prefix=/usr/local/nginx --with-http_sysguard_module --with-http_realip_module --with-ld-opt="-Wl,-rpath,/usr/local/lib" --add-module=/usr/local/src/ngx_devel_kit-0.3.0 --add-module=/usr/local/src/lua-nginx-module-0.10.11
# make
# make install

验证 lua-nginx-module 安装是否成功

在 server段 配置:

1
2
3
4
location /hello_lua {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}

使得配置生效

1
2
# nginx -t
# nginx -s reload

访问显示 hello, lua,则说明 lua-nginx-module 安装成功。

直接安装 openresty

安装 openresty

OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多高质量的第三方模块,以及它们的大多数依赖项。通过汇聚各种nginx模块,从而将nginx有效地变成一个强大的web应用服务器,从而使web开发人员可以使用lua脚本语言调用nginx支持的各种C和lua模块,快速构造出足以胜任10K+并发连接响应的超高性能web应用。

安装依赖包

1
# yum install readline-devel pcre-devel openssl-devel

官方 下载并安装 openrestry

1
2
3
4
5
6
# wget https://openresty.org/download/openresty-1.13.6.1.tar.gz
# tar zxvf openresty-1.13.6.1.tar.gz
# cd openresty-1.13.6.1
# ./configure
# make
# make install

默认配置,openresty会安装在/usr/local/openresty 中

设置环境变量

1
2
3
# vim /etc/profile
PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH

查看版本

1
2
# nginx -v
nginx version: openresty/1.13.6.1

lua 包管理

openresty 基于 Lua 语言开发,所以lua的开发环境和包管理器是开发一个重要支持。Luarocks 是一个 Lua 包管理器,,提供一个命令行的方式来管理 Lua 包依赖、安装第三方 Lua 包等。

Luarocks官网 下载并安装:

1
2
3
4
5
6
# wget http://luarocks.github.io/luarocks/releases/luarocks-2.4.3.tar.gz
# tar zxvf luarocks-2.4.3.tar.gz
# cd luarocks-2.4.3
# ./configure --with-lua-bin=/usr/bin/ --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1/
# make
# make install

dddfWe2d32