摘要:

本文记录如何安装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共有,欢迎转载,但未经作者同意必须保留此段声明