摘要:
本文记录如何安装ngx_lua模块
nginx_lua_module是由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力
http://wiki.nginx.org/HttpLuaModule
正文:
1 下载luajit 2.0.4并安装
http://luajit.org/download.html 也可到下载 luajit2.1 https://github.com/openresty/luajit2
我是直接使用源码make && make install
所以lib和include是直接放在/usr/local/lib和usr/local/include
2 下载nginx源码,解压
注意版本号,如果机子上已经装了nginx,不想升级的话,请使用/to/nginx/sbin/nginx –v
来查看版本号
3 下载ngx_devel_kit HERE https://github.com/simpl/ngx_devel_kit/releases 解压
4 下载nginx_lua_module HERE https://github.com/openresty/lua-upstream-nginx-module/releases 解压
5 进入nginx源码文件夹
cd nginx-1.9.2/
6 导入环境变量,编译
export LUAJIT_LIB=/usr/local/lib #这个很有可能不一样
export LUAJIT_INC=/usr/local/include/luajit-2.0 #这个很有可能不一样
也可以直接把上面两个环境变量写入到 /etc/profile里,然后 . /etc/profile 重载下
./configure --prefix=/opt/nginx \ #nginx的安装路径
--add-module=/path/to/ngx_devel_kit \ #ngx_devel_kit 的源码路径
--add-module=/path/to/lua-nginx-module #nginx_lua_module 的源码路径
make && make install # 这里建议使用使用单核单任务进行编译,官网使用了 make -j2 多任务编译,容易导致编译失败,其openssl编译时有依赖,会导致如下错误:
collect2: error: ld returned 1 exit status
make[4]: *** [link_app.] Error 1
make[4]: Leaving directory `/usr/local/src/openssl-1.0.1i/apps'
make[3]: *** [openssl] Error 2
make[3]: Leaving directory `/usr/local/src/openssl-1.0.1i/apps'
make[2]: *** [build_apps] Error 1
make[2]: *** Waiting for unfinished jobs....
......
make[2]: Leaving directory `/usr/local/src/openssl-1.0.1i'
make[1]: *** [/usr/local/src/openssl-1.0.1i/.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/usr/local/src/nginx-1.6.2'
make: *** [build] Error 2
7 测试是否成功:
nginxconfig中加入
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
使用/to/nginx/sbin/nginx –t 检查nginx配置,此时应该没有报错
8 /to/nginx/sbin/nginx #启动nginx
或者/to/nginx/sbin/nginx –s reload #重启nginx
访问192.168.100.1/hello
会出现“hello,lua”
安装成功!
----------------------
作者:yjf512(轩脉刃)
出处:http://www.cnblogs.com/yjf512/
本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明
转载于:https://blog.51cto.com/tianshili/1638516