文章摘要
本文介绍了如何在Nginx中安装Lua支持模块,具体步骤如下: 1. **下载必要文件** 首先下载Nginx、LuaJIT、ngx_devel_kit和lua-nginx-module的安装文件。 - Nginx:从[nginx.org](http://nginx.org/download/)下载最新版本。 - LuaJIT:从[luajit.org](http://luajit.org/download/)获取。 - ngx_devel_kit和lua-nginx-module:从GitHub仓库下载。 2. **安装LuaJIT** 使用`wget`下载LuaJIT的镜像,解压并按照提示编译安装。 ```bash $ wget http://luajit.org/download/LuaJIT- .tar.gz $ tar zxvf LuaJIT- .tar.gz $ cd LuaJIT- $ make $ sudo make install ``` 3. **编译安装lua-nginx-module** 设置环境变量: ```bash $ export LUAJIT_LIB=/usr/local/lib $ export LUAJIT_INC=/usr/local/include/luajit-2.1 ``` 然后从Nginx源码库编译模块: ```bash $ cd nginx-1.10.1 $ https://www.jb51.net/article/configure --prefix=/opt/nginx --with-ld-opt="-Wl,-rpath,/usr/local/lib" --add-module=/path/to/ngx_devel_kit-0.3.0 --add-module=/path/to/nginx/lua-nginx-module-0.10.5 $ make $ make install ``` 4. **动态模块配置** Nginx 1.9.11及以上版本支持通过`–add-dynamic-module=PATH`编译动态模块。在`nginx.conf`中加载模块: ```bash $ load_module /path/to/modules/ndk_http_module.so; $ load_module /path/to/modules/ngx_http_lua_module.so; $ lua cjson install ``` 5. **Eureka Zuul配置** 安装编译`cjson`需要配置`MakeFile`,修改关键变量后编译安装: ```bash $ wget http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz $ tar -zxvf cjson-2.1.0.tar.gz $ cd cjson-2.1.0 $ LUA_VERSION=luajit-2.1 $ LUA_INCLUDE_DIR=$(PREFIX)/include/$(LUA_VERSION) $ LUA_CMODULE_DIR=$(PREFIX)/lib $ make & sudo make install $ sudo cp cjson.so /usr/local/lib/lua/5.1/ ``` 此外,文章还提到了其他相关主题,如Nginx在Windows、Mac平台的安装配置,以及Lua开发环境的配置资源。
亦可参考官方安装指南: lua-nginx-module Installation
这是我总结的安装,供参考:
需要最新版的Nginx,LuaJIT,ngx_devel_kit,lua-nginx-module等安装文件:
Nginx
LuaJIT Lua或者LuaJIT都是可以的,但是出于性能的考虑,推荐安装LuaJIT
ngx_devel_kit
lua-nginx-module
参考命令下载:
$ curl -O http://nginx.org/download/nginx-1.10.1.tar.gz
$ curl -O http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz
$ curl -L -O https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
$ curl -L -O https://github.com/openresty/lua-nginx-module/archive/v0.10.5.tar.gz
安装LuaJIT
$ wget http://luajit.org/download/LuaJIT- .tar.gz
$ tar zxvf LuaJIT- .tar.gz
$ cd LuaJIT-
$ make
$ sudo make install
编译安装lua-nginx-module
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1
cd nginx-1.10.1
https://www.jb51.net/article/configure –prefix=/opt/nginx –with-ld-opt=”-Wl,-rpath,/usr/local/lib” –add-module=/path/to/ngx_devel_kit-0.3.0 –add-module=/path/to/nginx/lua-nginx-module-0.10.5
make
make install
动态module方式
Nginx 1.9.11 开始可以编译module为一个动态module,在执行https://www.jb51.net/article/configure命令时用–add-dynamic-module=PATH替换–add-module=PATH。编译后可以在nginx.conf配置中使用 load_module 来动态加载这个module:
load_module /path/to/modules/ndk_http_module.so;
load_module /path/to/modules/ngx_http_lua_module.so;
lua cjson install
Eureka Zuul 网关
安装编译cjson需要lua运行时,编译前需要修改MakeFile中的LUA_VERSION、LUA_INCLUDE_DIR、LUA_CMODULE_DIR参数,让cjson模块知道lua库文件和头文件目录,才可以正常编译安装。
下载解压:
wget http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz
tar -zxvf cjson-2.1.0.tar.gz
cd cjson-2.1.0
修改MakeFile:
LUA_VERSION=luajit-2.1
LUA_INCLUDE_DIR=$(PREFIX)/include/$(LUA_VERSION)
LUA_CMODULE_DIR=$(PREFIX)/lib
make & sudo make install
sudo cp cjson.so /usr/local/lib/lua/5.1/
您可能感兴趣的文章:解决nginx+lua搭建文件上传下载服务问题Lua在windows下的安装及环境配置安装Nginx+Lua开发环境Mac平台中编译安装Lua运行环境及Hello Lua实例解析Lua中的全局环境、包、模块组织结构Lua在各个操作系统中的开发环境配置教程Lua的函数环境、包实例讲解如何使用Vim搭建Lua开发环境详解